[기초] flutter 익명 함수와 람다함수
익명 함수와 람다 함수는 둘 다 이름이 없는 함수를 의미하지만, 언어에 따라 약간의 차이가 있을 수 있음. Dart에서는 이 두 용어가 자주 혼용되며, 주로 같은 개념을 가리킴. 하지만 조금 더 세부적으로 설명하자면 다음과 같음.
1. 익명 함수 (Anonymous Function)
정의: 이름이 없는 함수로, 주로 다른 함수의 매개변수로 전달되거나 특정한 작업을 수행하기 위해 사용됨.
특징: 일반적인 함수 정의와 비슷하게 매개변수와 반환값을 가질 수 있음.
예시
dart
코드 복사
void main() {
var numbers = [1, 2, 3, 4, 5];
// 익명 함수를 사용하여 리스트의 각 요소에 2를 곱함
var doubled = numbers.map((number) {
return number * 2;
}).toList();
print(doubled); // [2, 4, 6, 8, 10]
}
2. 람다 함수 (Lambda Function)
정의: 익명 함수의 한 형태로, 더 간결하게 작성할 수 있는 함수임. 주로 한 줄로 작성할 수 있는 함수를 가리킴.
특징: 반환값이 있는 경우, return 키워드를 사용하지 않고 간단히 표현할 수 있음.
예시
dart
코드 복사
void main() {
var numbers = [1, 2, 3, 4, 5];
// 람다 함수를 사용하여 리스트의 각 요소에 2를 곱함
var doubled = numbers.map((number) => number * 2).toList();
print(doubled); // [2, 4, 6, 8, 10]
}
차이점
특성 익명 함수 람다 함수
정의 이름이 없는 함수 간결하게 작성된 익명 함수
사용 용도 여러 줄의 코드를 포함할 수 있음 보통 한 줄로 작성됨
반환값 return 키워드를 사용할 수 있음 간단히 표현 가능
사용 시점
익명 함수: 여러 줄의 로직이 필요한 경우에 사용함. 복잡한 작업을 처리할 때 적합함.
람다 함수: 간단한 작업을 수행할 때, 코드가 더 간결하고 읽기 쉽게 만들기 위해 사용함.