[Dart] named parameter

misonaru·2024년 7월 24일

Dart

목록 보기
7/13
  • flutter에서 자주 사용되는 개념이라 함.
  • 메소드 작성시 각 변수가 무엇인지 보기 좋게 해 줌.
    (기존에 사용하던 positioned parameter 보다 편한 것 같음!)
String sayHello({String name, int age, String kind}) {
  return '이름 : $name, 나이 : $age, 품종 : $kind';
}

void main() {
  print(sayHello('나루', 8, ''요크셔테리어'));
}

    

위 메소드 사용을 위해 각 항목이 무엇인지 확인해야하는 번거로움이 있음.


  • 메소드 선언부 변수들을 {}로 감싸주면 named parameter 사용 가능
String sayHello({String name, int age, String kind}) =>
    '이름 : $name, 나이 : $age, 품종 : $kind';

그러나 nullSafety로 인해 위 메소드를 바로 적용할 수 없는데 2가지 방법이 있음.

1. default value 설정

String sayHello({String name = '미소', int age = 6, String kind = '시바'}) {
  return '이름 : $name, 나이 : $age, 품종 : $kind';
}

void main() {
  print(sayHello(kind: '요크셔테리어', name: '나루', age: 8));
}

출력결과
이름 : 나루, 나이 : 8, 품종 : 요크셔테리어
String sayHello({String name = '미소', int age = 6, String kind = '시바'}) {
  return '이름 : $name, 나이 : $age, 품종 : $kind';
}

void main() {
  print(sayHello());
}

출력결과
이름 : 미소, 나이 : 6, 품종 : 시바

2. required 명시

  • 자료형 앞에 required 명시
String sayHello(
    {required String name, required int age, required String kind}) {
  return '이름 : $name, 나이 : $age, 품종 : $kind';
}

void main() {
  print(sayHello(kind: '요크셔테리어', name: '나루', age: 8));

}
profile
미소와 나루 집사

0개의 댓글