Menu
Coddy logo textTech

Необязательные позиционные параметры

Часть раздела Основы путешествия по Dart на Coddy — урок 72 из 94.

Опциональные позиционные параметры в Dart позволяют создавать функции, в которых некоторые параметры являются опциональными. Вы определяете их, помещая параметры внутрь квадратных скобок [].

Создайте функцию с необязательными позиционными параметрами:

void greet(String name, [String? greeting]) {
  if (greeting != null) {
    print('$greeting, $name!');
  } else {
    print('Hello, $name!');
  }
}

void main() {
  greet('Dart');
  greet('Dart', 'Welcome');
}

После выполнения приведённого выше кода вывод будет следующим:

Hello, Dart!
Welcome, Dart!

Вы можете иметь несколько необязательных параметров:

int calculateTotal(int quantity, [int price = 10, int tax = 2]) {
  return quantity * price + tax;
}

void main() {
  print(calculateTotal(5));
  print(calculateTotal(5, 20));
  print(calculateTotal(5, 20, 5));
}

После выполнения приведённого выше кода вывод будет следующим:

52
102
105
challenge icon

Задание

Новичок

В этом вызове вы попрактикуетесь в использовании опциональных позиционных параметров в функциях Dart. Опциональные позиционные параметры позволяют создавать функции, в которых некоторые параметры являются опциональными.

Завершите функцию greet ниже, которая принимает обязательный параметр name и опциональный параметр title. Если title предоставлен, функция должна вернуть приветствие с обоими title и name. Если title не предоставлен, она должна использовать только name.

Ожидаемый вывод:

Hello, John!
Hello, Dr. Smith!

Шпаргалка

Необязательные позиционные параметры в Dart определяются путем размещения параметров внутри квадратных скобок []:

void greet(String name, [String greeting]) {
  if (greeting != null) {
    print('$greeting, $name!');
  } else {
    print('Hello, $name!');
  }
}

Вы можете иметь несколько необязательных параметров со значениями по умолчанию:

int calculateTotal(int quantity, [int price = 10, int tax = 2]) {
  return quantity * price + tax;
}

Вызывайте функции с необязательными параметрами, предоставляя только обязательные аргументы или включая необязательные:

greet('Dart');           // Uses default behavior
greet('Dart', 'Welcome'); // Uses provided optional parameter

Попробуйте сами

void main() {
  // Эти переменные уже определены для вас
  String person1 = "John";
  String person2 = "Smith";
  String title = "Dr.";
  
  // Вызовите функцию greet только с именем
  print(greet(person1));
  
  // Вызовите функцию greet с именем и титулом
  print(greet(person2, title));
}

// TODO: Завершите функцию greet с необязательным параметром title
// Параметр title должен быть необязательным (используйте квадратные скобки [])
String greet(String name) {
  // Если title предоставлен, вернуть "Hello, {title} {name}!"
  // Если title не предоставлен, вернуть "Hello, {name}!"
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы