Dart, 이름없는 함수
글. 수알치 오상문
대부분의 함수는 main () 또는 printElement ()처럼 이름이 있습니다. 그런데 이름없는(익명 함수 또는 람다 또는 클로저) 함수를 만들 수 있습니다. 예를 들어 컬렉션에서 추가/제거 할 수 있도록 익명 함수를 할당할 수 있습니다.
익명 함수는 이름이 지정된 함수와 같지만 함수 이름이 없습니다. 쉼표로 구분 된 0개 이상의 매개 변수와 괄호로 만듭니다.
([[자료형] 매개변수1[, …]]) {
// 몸통 코드;
};
다음 예제는 형식이 지정되지 않은 매개변수 item을 사용한 익명 함수((item) { print('${list.indexOf(item)}: $item'); })를 정의합니다. 목록의 각 항목에 대해 호출되는 함수는 지정된 인덱스 값을 포함하는 문자열을 화면에 출력합니다.
const list = ['apples', 'bananas', 'oranges'];
list.forEach( (item) { print('${list.indexOf(item)}: $item'); } );
[실행결과]
0: apples
1: bananas
2: oranges
함수에 단일 표현식 또는 return 문만 포함된 경우에는 화살표 표기법(==>)으로 단축할 수 있습니다.
list.forEach( (item) => print('${list.indexOf(item)}: $item'));
참고로 예제의 이름없는 함수는 다음처럼 이름(doPrint)을 가진 함수로 작성할 수도 있습니다.
void doPrint(dynamic item) {
print('${list.indexOf(item)}: $item');
}
list.forEach( doPrint );
<이상>
'Dart' 카테고리의 다른 글
Dart, 함수 비교 테스트 (0) | 2021.06.15 |
---|---|
Dart, 접근 범위와 클로저(closure) (0) | 2021.06.15 |
Dart, 함수 (0) | 2021.06.14 |
Dart, 맵(사전) 자료형 Map (0) | 2021.06.14 |
Dart 집합 자료형 Set (0) | 2021.06.14 |