named arguments → 변수이름 :
named parameters → {데이터형 변수이름, ...} 

파라메터 정의시 Default value가 없거나, required annotate가 없다면, 파라메터의 데이터 타입은 null가질 수 있는 nullable types이어야한다.

 

Dart considers all variables non-nullable. : Compile에서 부터 오류발생

void main() {
  print(YourInfo1(name:'A', age:12, job:'B'));
}
String YourInfo1({String name, int age, String job})
{
  return '1. Your name is $name. Your age is $age. Your job is $job.';
}

 

default value 지정 : 정상작동

void main() {
  print(YourInfo2(name:'A', age:12));
}
String YourInfo2({String name = 'Z', int age = 10, String job = 'Y'})
{
  return '2. Your name is $name. Your age is $age. Your job is $job.';
}
2. Your name is A. Your age is 12. Your job is Y.

 

required 지정 : 정상작동

void main() {
  print(YourInfo3(name:'A', age:12, job:null));  // 매개변수가 필수 이다. 값이 null일 수는 있어도 변수를 생략해서는 안된다. 
}
// A parameter marked as required can still be nullable.
// Required named parameter can't have a default value. (required String? job = 'ZZZ' ❌)
String YourInfo3({required String name, required int age, required String? job})
{
  return '3. Your name is $name. Your age is $age. Your job is $job.';
}
3. Your name is A. Your age is 12. Your job is null.

 

nullable types 지정 : 정상작동

void main() {
  print(YourInfo4(name:'A', age:12));
}
String YourInfo4({String? name, int? age, String? job})
{
  return '4. Your name is $name. Your age is $age. Your job is $job.';
}
4. Your name is A. Your age is 12. Your job is null.

 

 

https://dart.dev/language/functions#named-parameters