매개 변수
A tour of the Dart language 페이지를 공부하면서 정리한 내용입니다.
함수는 필요한 만큼의 위치 매개변수(Positional parameters)를 가질 수 있으며, 그 뒤에는 명명된 매개변수(Named parameters) 또는 선택적 위치 매개변수(Optional positional parameters)가 올 수 있습니다. Flutter의 위젯 생성자 같은 API의 경우 필수 매개변수의 경우에도 명명된 매개변수만 사용합니다.
함수에 인수를 전달하거나 함수 매개변수를 정의할 때 후행 쉼표를 사용할 수 있습니다. Dart 언어에서 기본으로 제공하는 dart format 커멘드라인 도구를 사용하면 후행 쉼표 유무에 따라 줄바꿈 처리가 다르게 적용됩니다.
명명된 매개변수 (Named parameters)
함수를 호출할 때 paramName: value
형태로 명명된 매개변수명을 지정할 수 있습니다. 명명된 매개변수는 required
로 선언하지 않는한 선택적으로 사용할 수 있습니다. 함수를 정의할 때 {param1, param2, …}
의 형태로 명명된 매개변수를 정의합니다.
명명된 매개변수는 일종의 선택적 매개변수이지만 required
로 선언하여 필수 매개변수 임을 나타낼 수 있습니다. 사용자는 반드시 매개변수의 값을 제공해야하며, 그렇지 않을 시 컴파일러는 오류를 발생시킵니다.
선택적 위치 매개변수 (Optional positional parameters)
함수 선언 시 매개변수를 []
로 감싸면 선택적 위치 매개변수로 정의됩니다. 예제에서 세번째 파라미터는 device
를 사용할지는 사용자의 몫입니다.
기본 매개변수 값 (Default parameter values)
함수는 =
를 사용하여 명명된 매개변수와 선택적 위치 매개변수 모두에 대한 선택적 매개변수의 기본값을 정의할 수 있습니다. 기본값은 반드시 컴파일 타임 상수여야 합니다. 기본값이 제공되지 않을 경우 기본값은 null
입니다. 다음은 명명된 매개변수의 기본값을 설정하는 예제입니다.
이제 선택적 매개변수에 값을 넘기지 않았을 경우 기본값을 사용하도록 처리할 수 있습니다. 뿐만아니라 Non-Nullable 타입을 사용할 수 있게되어 번거로운 null
검사를 피할 수 있게 되었습니다. 선택적 위치 매개변수에 기본값을 설정하는 예제입니다.
기본값으로 리스트나 맵 리터럴을 전달하는 것도 가능합니다.
Last updated