Menu
Coddy logo textTech

선택적 위치 매개변수

Coddy Dart 여정의 기초 섹션에 포함된 레슨 — 94개 중 72번째.

선택적 위치 매개변수는 Dart에서 일부 매개변수가 선택적인 함수를 만들 수 있게 합니다. 매개변수를 대괄호 [] 안에 배치하여 정의합니다.

선택적 위치 매개변수를 가진 함수를 생성하세요:

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

void main() {
  greet('Dart');
  greet('Dart', 'Welcome');
}

위의 코드를 실행한 후 출력은 다음과 같습니다:

Hello, Dart!
Welcome, Dart!

여러 개의 선택적 매개변수를 가질 수 있습니다:

int calculateTotal(int quantity, [int price = 10, int tax = 2]) {
  return quantity * price + tax;
}

void main() {
  print(calculateTotal(5));
  print(calculateTotal(5, 20));
  print(calculateTotal(5, 20, 5));
}

위 코드를 실행하면 출력은 다음과 같습니다:

52
102
105
challenge icon

챌린지

초급

이 챌린지에서 Dart 함수에서 선택적 위치 매개변수를 사용하는 연습을 할 것입니다. 선택적 위치 매개변수는 일부 매개변수가 선택적인 함수를 만들 수 있게 합니다.

greet 함수를 완성하세요. 이 함수는 필수 name 매개변수와 선택적 title 매개변수를 받습니다. title이 제공되면, 함수는 title과 name을 모두 포함한 인사를 반환해야 합니다. title이 제공되지 않으면, name만 사용해야 합니다.

Expected output:

Hello, John!
Hello, Dr. Smith!

치트 시트

Dart에서 선택적 위치 매개변수는 매개변수를 대괄호 [] 안에 배치하여 정의됩니다:

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

기본값이 있는 여러 선택적 매개변수를 가질 수 있습니다:

int calculateTotal(int quantity, [int price = 10, int tax = 2]) {
  return quantity * price + tax;
}

선택적 매개변수가 있는 함수를 호출할 때는 필수 인수만 제공하거나 선택적 인수를 포함하여 호출할 수 있습니다:

greet('Dart');           // Uses default behavior
greet('Dart', 'Welcome'); // Uses provided optional parameter

직접 해보기

void main() {
  // 이 변수들은 이미 정의되어 있습니다
  String person1 = "John";
  String person2 = "Smith";
  String title = "Dr.";
  
  // 이름만으로 greet 함수 호출
  print(greet(person1));
  
  // 이름과 직함 둘 다로 greet 함수 호출
  print(greet(person2, title));
}

// TODO: 선택적 title 매개변수로 greet 함수 완성
// title 매개변수는 선택적이어야 합니다 (대괄호 [] 사용)
String greet(String name) {
  // title이 제공되면, "Hello, {title} {name}!" 반환
  // title이 제공되지 않으면, "Hello, {name}!" 반환
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨