람다라는 개념을 처음에는 이해하기 어려웠다.
하지만 게속 사용해보니 간단하게 사용이 가능했다.
형식은 이렇게 이루어져 있다.
( ) => { }
일단 익명 메서드를 만들기위해 사용하는 데
익명 메서드란 몸체와 내용만 있는 메서드이다.
기본적인 예제를 들어보면
public class Test : MonoBehaviour
{
delegate int testDel(int x, int y);
void Start()
{
testDel test = Add;
Debug.Log(test(10,20));
}
int Add(int x, int y)
{
return x + y;
}
}
미리 정의된 메서드 Add라는 함수를 test에 넣어서 출력을 해왔다.
하지만 여기서 메서드를 정의하지 않고 delegate키워드로도 해줄수 있는데
코드는 다음과 같아진다.
public class Test : MonoBehaviour
{
delegate int testDel(int x, int y);
void Start()
{
testDel test = delegate(int x, int y)
{
return x + y;
}
Debug.Log(test(10,20));
}
}
Add라는 메서드를 따로 정의하지 않고 delegate키워드로 매개변수와 매서드 내용을 적어주면 익명 메서드로 바로 만들수도 있다.
이제 여기서 람다식이 나오는데 람다식은이제 위에 있던 익명메서드를 좀더 간단하게 표현을 하려고 만든것이다.
다음과 코드를 보면
public class Test : MonoBehaviour
{
delegate int testDel(int x, int y);
void Start()
{
testDel test = (x, y) => x + y;
Debug.Log(test(10,20));
}
}
람다식의 장점은 생략을 해서 람다 연산자인 => 로 대채를 한다.
또한 delegate;
선언과 값을 반환하는 반환문이 하나만 있을 경우는 return도 생략할 수 있다.
남는 것은 매개변수명과 실제 내용 뿐이다.
참고로 매개변수가 1개라면 괄호도 생략할 수 있다.