30.3 화살표 연산자와 람다 식으로 조건 처리
LINQ에서 제공하는 확장 메서드들은 매개변수로 람다 식(lambda expression)을 받는데, 람다 식은 화살표 연산자 또는 람다 연산자라고 하는 화살표 모양의 => 기호를 사용합니다.
람다 식
람다 식은 다른 말로 화살표 함수(arrow function)라고도 합니다. 화살표 연산자 또는 람다 연산자(lambda operator)로 표현되는 => 연산자는 일반적으로 영어로는 ‘goes to’ 또는 ‘arrow’로 발음합니다. 우리말로 번역하면 ‘이동’이라는 의미입니다.
람다 식은 다음과 같이 두 가지 형태로 표현합니다. 이 두 가지 형태를 구분해서 식 람다(expression lambda)와 문 람다(statement lambda)로 표현하기도 합니다.
▼ 표 30-1 식 람다와 문 람다
종류 |
형태 |
예 |
식 람다 |
(입력 매개변수) => 식 |
x => x + 1 |
문 람다 |
(입력 매개변수) => { 문; } |
x => { return x + 1; } |
예를 들어 x => x * x 형태의 람다 식은 ‘x는 x 곱하기 x로 이동’으로 읽을 수 있습니다.
람다 식을 만드는 것은 뒤에서 자세히 배우지만, 우선 미리보기로 다음 코드를 간단히 살펴보고 넘어가겠습니다. Func<T> 또는 Action<T>를 사용하여 새롭게 만든 isEven()과 greet() 함수로 짝수를 판별하거나 이름을 출력하는 메서드를 만들어 보았습니다.
> //식 람다 미리보기 코드 > Func<int, bool> isEven = x => x % 2 == 0; > isEven(2) true > isEven(3) false > //문 람다 미리보기 코드 > Action<string> greet = name => { var message = $"Hello {name}"; Console.WriteLine(message); }; > greet("You") Hello You