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