익명 함수를 간단하게 표현하는 방법
(int x) => x * x
| 형태 | 예시 | 설명 |
|---|---|---|
| 매개변수 1개 | x => x + 1 |
한 줄이면 {}나 return 생략 가능 |
| 매개변수 여러 개 | (x, y) => x + y |
괄호로 묶기 |
| 본문이 여러 줄 | (x) => { var y = x + 1; return y * 2; } |
블록 필요 |
// 전체 예시
Func<int, int> square = x => x * x;
Func<int, int, int> sum = (a, b) => a + b;
Action<string> print = msg => Debug.Log(msg);
button.onClick.AddListener(() => Debug.Log("Clicked!"));
var item = items.FirstOrDefault(x => x.id == 5);
var strongItems = items.Where(i => i.attack > 10).ToList();코루틴 내부 처리
StartCoroutine(FadeOut(() => Destroy(gameObject)));
| 타입 | 의미 |
|---|---|
Action |
반환값이 없는 함수 |
Func<T1, TReturn> |
인자 있고, 반환값 있는 함수 |
Predicate<T> |
Func<T, bool> 형태 (true/false 반환) |
람다는 이 델리게이트 타입들에 자동으로 할당 가능함.