익명함수와 람다식

DevCho1107

·

2020. 2. 4. 15:40

익명 함수와 람다식 


익명 함수는 미리 정의하지 않고, 인라인(실행 중인 코드 블록 내부)에서 즉석 생성할 수 있는 메소드이다.

익명 함수는 실시간으로 생성할 수 있으며, 변수에 저장할 수 있는 값이나 오브젝트로 취급되며, 생성된 익명 함수는 델리게이트 타입의 변수에 저장할 수 있다. 단, 익명 함수는 미리 정의하지 않고 대부분 일회용으로 실시간 생성해서 사용하기 때문에 스코프 외부에서 따로 지칭할 수 있는 이름을 가지고 있지 않다. 


익명 함수를 사용하면 실시간으로 일회용 메소드를 생성하고 이벤트로 등록할 수 있다. 


간단한 예제를 보자. 


1
2
3
4
5
6
7
8
9
10
11
using UnitytEngine
 
class EnemySpawner : MonoBehaviour {
    
    private void CreateEnemy(float intensity){
        Enemy enemy = Instantiate(enemyPrefab, spawnPoint.position, spawnPoint.rotation);
        //람다식을 통한 메소드의 오브젝트식 생성(익명 함수) 및 이벤트에 추가
        enemy.onDeath += () => enemies.Remove(enemy);
        enemy.onDeath += () => enemies.Destroy(enemy.gameObject,10f);
    }
}
출처 - 레트로의 우니티 프로그래밍 에센스
cs

(입력) => 내용;

(사실 이 책에서만 설명하는 내용으로 감이 안오는데, 몇가지 예제를 더 찾아보고 사용해봐야 할 것 같다.)