Ключевое слово required
Ключевое слово required используется при объявлении
именованных параметров функции, метода или конструктора.
Оно указывает компилятору, что данный параметр должен быть
обязательно передан при вызове. Без required
именованные параметры по умолчанию являются необязательными.
Особенно часто required применяется вместе с
nullable-типами и ключевым словом late.
Синтаксис
returnType functionName({required type parameter}) {
// body
}
Пример
Давайте объявим функцию с двумя обязательными именованными параметрами и вызовем её:
void printInfo({required String name, required int age})
{
print('$name is $age years old');
}
void main()
{
printInfo(name: 'abcde', age: 25);
}
Результат выполнения кода:
"abcde is 25 years old"
Пример
Если пропустить обязательный параметр, помеченный
required, компилятор выдаст ошибку:
void printInfo({required String name, required int age})
{
print('$name is $age years old');
}
void main()
{
printInfo(name: 'abcde');
}
Результат выполнения кода:
Error: Required named parameter 'age' must be provided.
Пример
Ключевое слово required можно комбинировать с
необязательными именованными параметрами:
void printInfo({required String name, int age = 0})
{
print('$name is $age years old');
}
void main()
{
printInfo(name: 'abcde');
}
Результат выполнения кода:
"abcde is 0 years old"
Пример
Особенно полезно required вместе с nullable-типами,
когда нужно явно передать null в качестве значения:
void printValue({required String? value})
{
print(value ?? 'default');
}
void main()
{
printValue(value: null);
}
Результат выполнения кода:
"default"