Dart 언어 오답노트 : 12. Optional Parameter

샤워실의 바보·2023년 10월 24일
0
post-thumbnail

Dart에서 함수의 매개변수는 기본적으로 필수입니다. 하지만 필요에 따라 선택적(옵셔널) 매개변수를 정의할 수도 있습니다. 선택적 매개변수는 두 종류로 나뉩니다: 이름 기반의 선택적 매개변수와 위치 기반의 선택적 매개변수입니다.

이름 기반의 선택적 매개변수 (Named Optional Parameters)

이름 기반의 선택적 매개변수는 중괄호 {}를 사용하여 정의합니다. 호출 시에는 매개변수의 이름을 명시해야 합니다.

void greet(String name, {String? prefix}) {
  if (prefix != null) {
    print('$prefix $name');
  } else {
    print('Hello, $name');
  }
}

void main() {
  greet('John');                  // Hello, John
  greet('John', prefix: 'Mr.');    // Mr. John
}

위의 예시에서 greet 함수는 두 개의 매개변수를 가지고 있습니다: nameprefix입니다. prefix는 이름 기반의 선택적 매개변수이며, 값을 제공하지 않아도 됩니다.

위치 기반의 선택적 매개변수 (Positional Optional Parameters)

위치 기반의 선택적 매개변수는 대괄호 []를 사용하여 정의합니다. 매개변수의 위치에 따라 값을 전달합니다.

void greet(String name, [String? prefix]) {
  if (prefix != null) {
    print('$prefix $name');
  } else {
    print('Hello, $name');
  }
}

void main() {
  greet('John');         // Hello, John
  greet('John', 'Mr.');   // Mr. John
}

위의 예시에서 greet 함수는 위치 기반의 선택적 매개변수 prefix를 가지고 있습니다. 호출 시에 prefix를 제공하거나 생략할 수 있습니다.

매개변수의 기본값 설정

선택적 매개변수에는 기본값을 설정할 수도 있습니다. 이렇게 하면 매개변수가 생략되었을 때 기본값이 사용됩니다.

void greet(String name, {String prefix = 'Hello,'}) {
  print('$prefix $name');
}

void main() {
  greet('John');         // Hello, John
  greet('John', prefix: 'Hi,');  // Hi, John
}

위의 예시에서 greet 함수의 prefix 매개변수는 기본값 'Hello,'를 가지고 있습니다. 매개변수를 생략하면 기본값이 사용됩니다.

profile
공부하는 개발자

0개의 댓글