플러터/플러터 개념

[Dart] Dart 개념 정리1 - 매개변수

감자 바보 2023. 8. 4. 21:26
반응형

Dart 개념 정리 1 - 매개변수 

Dart에서는 생략이 불가능한 'Positional Parameters' 방식과 생략이 가능한 'Named Parameters' 방식이 존재합니다. 이번 포스트에서는 Dart에서 매개변수를 다르는 방식들과 각각의 특징들을 알아볼 것입니다.

 

매개변수란 ?

매개변수란 함수가 호출 될 때 넘겨받는 데이터라고 보시면 됩니다. 함수는 전달받은 매개변수를 기반으로 동작하여 기능을 수행합니다. 

 

예를 들어 아래와 같이 더하기 함수 sum이 있다고 합시다.

void Sum(a, b) {
	print(a + b);
}

이 함수는 호출 시 입력되는 숫자에 따른 동작을 수행합니다. 예를 들어 Sum(3, 4)로 호출될 시 3과 4의 합인 7을, Sum(1, -1)로 호출될 시 1과 -1의 합인 0을 출력합니다.

 

Dart에서의 'Positional Parameters' 

Dart에서 'Positional Parameters'란  위치를 기반으로 하는 생략 불가능한 매개변수를 뜻합니다.

자료형 함수이름(매개변수1, 매개변수2, ...)

위와 같이 선언되며 함수 호출 시 나열되는 순서대로 매개변수가 받아집니다. 예를 들어 Sum(a, b) 함수는 Sum(1, 2)와 같이 호출하며 각각 a에는 1이, b에는 2가 들어가는 방식입니다.

 

Dart에서의 'Optional Parameters' 

Dart에서 'Optional Parameters'란 생략이 가능한 매개변수를 뜻합니다. 위치 기반의 방식과 순서쌍 방식의 'Named Parameters' 방식이 존재합니다.  단 생략할 시 기본값이 지정이 되어 있지 않다면 null이 들어가게 됩니다.

 

1. 위치 기반의 생략 가능 매개변수

자료형 함수이름([매개변수1, 매개변수2 = 기본값, ...])

위와 같이 매개변수에 []를 씌워 선언되며 함수 호출 시 나열되는 순서대로 매개변수가 받아집니다. 매개변수를 생략할 수 있지만 입력된 매개변수가 존재할 시 앞에서 부터 채워집니다. 단 매개변수에 '매개변수 = 기본 값' 형태로 기본 값을 지정할 수 있으며 이때 매개변수가 생략될 시 기본값으로 채워지게 됩니다. 만약 기본값을 설정하지 않았다면 null이 들어가게 됩니다. 단 기본값은 맨 뒤의 매개변수부터 순서대로 지정할 수 있습니다.

 

예를들어 5개의 매개변수를 가지는 F([a, b, c, d, e = 5]) 함수가 존재할 때 F(1,2, 3)과 같이 선언된다면 순서대로 a, b, c에 1, 2, 3이 들어가게 됩니다. d는 기본값을 지정하지 않았으므로 null이 e는 기본값 5가 들어가게 됩니다.

 

2. 순서쌍 기반의 'Named Parameters'

반환형 함수이름({매개변수1, 매개변수2 = 기본값})

위와 같이 {}를 사용하여 순서쌍 기반의 매개변수를 선언할 수 있습니다. 이 때 매개변수는 이름을 가지게 되며 함수 호출시 이름을 지정하여 호출 시 매개변수 순서 상관없이 호출할 수 있습니다. 호출시 함수명(변수이름 : 변수값) 형태로 호출합니다.

 

예를 들어  F({a, b, c, d, e = 5})가 있을 경우 F(a: 1, c: 3)과 같이 호출할 수 있습니다.

 

[]를 사용하는 1번 방식과  {}를 사용하는 2번방식은 함께 사용이 불가능합니다.

 

'Positional Parameters', 'Optional Parameters'  혼용 사용

생략 불가능한 매개변수와 생략 가능한 매개변수는 혼용사용이 가능합니다.

이 때 주의해야 할 점은 생략 불가능한 변수를 앞에 배치하고 생략 가능한 변수를 뒤에 배치해야 하는 것 입니다.

 

참고

1. Dart 공식문서 - Functions | Dart

 

Functions

Everything about functions in Dart.

dart.dev