Dart에서 함수의 매개변수에 이름을 부여하는 것을 Named Parameter라고 합니다. Named Parameter를 사용하면 함수 호출 시 매개변수를 직관적으로 전달할 수 있습니다. Named Parameter는 함수의 가독성과 확장성을 향상해 주는 장점이 있습니다.
Named Parameter
함수를 정의할 때, 매개변수에 이름을 부여하는 것을 Named Parameter라고 합니다. Named Parameter를 정의하려면 {param1: defaultValue1, param2: defaultValue2, ...} 형식으로 정의하면 됩니다. Named Parameter에는 기본값을 지정할 수 있으며, 기본값을 지정하지 않으면 필수적으로 전달되어야 합니다.
- Named Parameter 사용 방법
- Named Parameter default value 지정 방법
- Named Parameter required 사용 방법
Named Parameter 사용 방법
Named Parameter 사용 방법은 아래와 같습니다.
# 파라미터를 중괄호로 묶음
String printName({String name, int age, String country}) {
return "My name is $name and i am $age from $country";
}
# 매개변수의 이름을 지정
void main() {
print(printName(
name: 'John',
age: 18,
country: 'Korea',
));
}
함수를 호출할 때 콜론으로 매개변수의 이름을 지정합니다. 전달받은 파라미터는 중괄호로 묶어 사용합니다.
하지만 위 코드를 실행하면 error가 발생합니다. 왜냐하면 Dart는 null safety로 인해 함수로 넘어오는 파라미터가 null 이면 안됩니다.
따라서 함수에 정의된 파라미터대로 넘어오지 않더라도, default value를 지정하여 null 이 발생하지 않도록 하거나, required를 이용하여 컴파일되지 않도록 할 수 있습니다.
Named Parameter default value 지정 방법
위 코드에서 default value를 지정해 주도록 하겠습니다.
String printName({
String name = "anon",
int age = 15,
String country = 'America',
}) {
return "My name is $name and i am $age from $country";
}
void main() {
print(printName(
name: 'John',
age: 18,
country: 'Korea',
));
}
printName의 각 파라미터에 default value를 지정해 주었습니다.
정상적으로 출력되었습니다.
Named Parameter required 사용 방법
이번에는 required modifier를 사용해 보도록 하겠습니다.
String printName({
required String name,
required int age,
required String country,
}) {
return "My name is $name and i am $age from $country";
}
void main() {
print(printName(
name: 'John',
age: 18,
country: 'Korea',
));
}
required는 default value 대신 변수 타입 앞에 지정해 사용합니다.
위 코드와 같이 required 가 지정된 파라미터는 반드시 함수 호출 시기에 값이 포함되어야 합니다. 그렇지 않을 경우 아래와 같이 컴파일 에러 발생됩니다.
마무리
Dart Named Parameter는 함수 호출 시 매개변수를 직관적으로 전달할 수 있도록 하는 기능이며, flutter에서 많이 사용한다고 하니 기억해 두도록 하겠습니다.
오늘도 행복한 코딩생활 되시길 바라겠습니다.
감사합니다.
'개발 > Dart' 카테고리의 다른 글
Dart 기본 - 16. QQ 연산자 사용 방법, 삼항연산자보다 간편하게 쓰기 (0) | 2023.02.04 |
---|---|
Dart 기본 - 15. Optional Parameters 와 Positional Parmeters (0) | 2023.02.02 |
Dart 기본 - 13. 함수 정의하기, fat arrow 사용 방법 (0) | 2023.01.30 |
Dart 기본 - 12. Set 사용 방법 (1) | 2023.01.29 |
Dart 기본 - 11. Map 사용 방법 (0) | 2023.01.28 |
댓글