Dart에서 함수의 매개변수는 기본적으로 필수입니다. 하지만 필요에 따라 선택적(옵셔널) 매개변수를 정의할 수도 있습니다. 선택적 매개변수는 두 종류로 나뉩니다: 이름 기반의 선택적 매개변수와 위치 기반의 선택적 매개변수입니다.
이름 기반의 선택적 매개변수는 중괄호 {}
를 사용하여 정의합니다. 호출 시에는 매개변수의 이름을 명시해야 합니다.
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
함수는 두 개의 매개변수를 가지고 있습니다: name
과 prefix
입니다. prefix
는 이름 기반의 선택적 매개변수이며, 값을 제공하지 않아도 됩니다.
위치 기반의 선택적 매개변수는 대괄호 []
를 사용하여 정의합니다. 매개변수의 위치에 따라 값을 전달합니다.
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,'
를 가지고 있습니다. 매개변수를 생략하면 기본값이 사용됩니다.