다트 함수에서 매개변수를 지정하는 방법으로 순서가 고정된 매개변수(positional parameter, 위치 매개변수)와 이름이 있는 매개변수(named parameter, 명명된 매개변수)가 있다.
int addTwoNumbers(int a, int b) {
return a + b;
}
void main() {
addTwoNumbers(1,2); // a = 1, b = 2
}
위치 매개변수는 일반적인 함수와 같이 입력된 순서대로 매개변수에 값이 지정 됩니다.
int addTwoNumbers({required int a, required int b}) {
return a + b;
}
void main() {
addTwoNumbers(a: 2, b: 1); // a = 2, b = 1
}
네임드 파라미터를 지정하려면 중괄호 {}와 required 키워드를 사용해야 합니다.
이 경우 순서와 관계없이 지정하고 싶은 매개변수의 이름을 이용해 값을 입력할 수 있습니다.
키와 값 형태로 매개변수를 입력하면 되므로 입력 순서는 중요하지 않습니다.
여기서 required 키워드는 매개변수가 null 값이 불가능한 타입이면 기본값을 지정해주거나 필수로 입력해야 한다는 의미입니다.
int addTwoNumbers(int a, [int b = 2]) {
return a + b;
}
void main() {
addTwoNumbers(1) // a = 1, b = 2
}
기본값을 갖는 위치 매개변수의 경우 [ ] 기호를 사용한다.
입력값이 하나뿐이라서 두 번째 매개변수에 기본값 2를 적용한다.
int addTwoNumbers({
required int a,
int b= 2
}) {
return a + b;
}
void main() {
addTwoNumbers(a: 1) // a = 1, b = 2
}
required 키워드를 생략해주고 등호 다음에 원하는 기본값을 입력해주시면 된다.
int addTwoNumbers(
int a, {
required int b,
int c = 4
}
) {
return a + b + c;
}
void main() {
addTwoNumbers(1, b: 3, c: 7)
}
위치 매개변수와 명명된 매개변수를 섞어서 사용할 수도 있다.
섞어 쓸 때는 반드시 위치 매개변수가 명명된 매개변수보다 먼저 위치해야 한다.