🎮 Unity Study/C#

[C#] lambda식이란 ? 언제 사용할까 ?

ibelieveinme 2023. 8. 17. 00:41
728x90

lambda 식 ? 

함수에 인자값으로 함수를 넣기 위해, + 더 간단하게 구현하기 위해 만든 문법.

lambad 식은 선언한 자리에서'만' 사용하기 때문에 접근지정자, 반환값, 이름이 필요없다.

재사용하지 않을 함수를 따로 구현하지 않고 바로 호출해서 한번만 사용할 때 편리하다.

 

위 개념을 바탕으로 아래 함수를 lambda 식으로 바꿔보자.

public void LambdaTest(){
	Debug.Log("LambdaTest");
}
() => { Debug.Log("LambdaTest"); }

 

인자와 반환값이 있는 함수는 어떻게 바꿀까

public int Add(int a, int b){
	return a + b;
}
(int a, int b) => { return a + b; }

 

사용예시를 살펴보자.

class Test {

    private void Start() {
        LambdaTest(() => {
            Debug.Log("Lambda Test");
        });
    }
    
    private void SayLambda() {
        Debug.Log("Lambda Test");
    }

    private void LambdaTest(Action action) {
        action();
    }
}

위와 같이 LambdaTest 함수에 함수를 넣고자 할 때, LambdaTest 함수에는 Action 이란 인자를 넣고 호출 쪽에서는 람다식을 작성하면 편하다. 구지 SayLambda() 라는 Debug 함수를 작성할 필요 없다는 뜻.

728x90