본문 바로가기
개발/Dart

Dart 기본 - 14. named parameter, required 사용 방법

by 왼하루 2023. 2. 1.
반응형

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 이면 안됩니다.

error

 

따라서 함수에 정의된 파라미터대로 넘어오지 않더라도, 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를 지정해 주었습니다.

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

 

위 코드와 같이 required 가 지정된 파라미터는 반드시 함수 호출 시기에 값이 포함되어야 합니다. 그렇지 않을 경우 아래와 같이 컴파일 에러 발생됩니다.

컴파일 에러 발생

 

 

마무리

Dart Named Parameter는 함수 호출 시 매개변수를 직관적으로 전달할 수 있도록 하는 기능이며, flutter에서 많이 사용한다고 하니 기억해 두도록 하겠습니다.

 

오늘도 행복한 코딩생활 되시길 바라겠습니다.

 

감사합니다.

 

 

댓글