앱 만들기 프로젝트/Dart

Dart - 3.1 Named Parameters

지나가는물리학부생 2024. 10. 14. 23:43
반응형

일반적인 함수를 선언하려면...

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