반응형
일반적인 함수를 선언하려면...
String sayHello(String name, int age, String country) {
return "Hello $name, you are $age, and you come from $country";
}
이 함수를 불러오려면...
void main() {
print(sayHello('me', 12, 'korea'));
}
이렇게 파라미터를 순서대로 입력해야 한다. (이걸 positional argument이라고 한다.)
Named Parameters를 적용하려면 다음과 같이 '중괄호{}'를 적용해주면 된다.
String sayHello1({String name, int age, String country}) {
return "Hello $name, you are $age, and you come from $country";
}
이렇게 하면 다음과 같이 순서 상관없이 '입력하고 싶은 변수: 값' 이렇게 입력하면 된다.
void main() {
print(sayHello1(age: 12, country: 'korea', name: 'me'));
}
개꿀이구만. 심지어, 각 변수에 대해서 '자동완성'까지 된다.
하지만, 현재 함수 sayHello1은 이대로 사용할 수 없다.
왜냐고? null-safety를 지켜야 하니까. "파라미터 입력을 누군가가 안하면 어쩔꺼임?" 이라는 것이다.
방법은 두 가지가 있다.
1. 각 파라미터의 default value를 지정하기
String sayHello2(
{String name = 'anon', int age = 99, String country = 'wakanda'}) {
return "Hello $name, you are $age, and you come from $country";
}
2. required modifier를 이용해서 "필수 값"으로 만들기
String sayHello3({required String name, required int age, required String country}) {
return "Hello $name, you are $age, and you come from $country";
}
2번의 경우처럼 required를 사용하면 해당하는 변수가 입력되지 않도록 막는다.
...개 좋은데?
반응형
'앱 만들기 프로젝트 > Dart' 카테고리의 다른 글
Dart - 3.4 QQ Operator(Null-aware operator) (0) | 2024.10.15 |
---|---|
Dart - 3.3 Optional Positional Parameters (0) | 2024.10.15 |
Dart - 3.0 Defining a Function (0) | 2024.10.14 |
Dart - 2.5 Sets (0) | 2023.03.07 |
Dart - 2.4 Maps (0) | 2023.03.07 |