Q.람다식? Predicate<T>?

A.람다식 일회용 메서드 또는 이름 없는 메서드라고 보면된다.

이름이 없기에 계속 호출해서 쓸수 없기에 event에 등록되있으면 계속 사용이 가능하거나

해당 로직에서 딱 한번만 간단하게 쓰일정도면 람다식을 쓰기도한다.

 

나는 주로 람다식을 event 함수 구현을 할때 주로 사용 했었다.

하지만 팀 프로젝트 중에 이렇게 간단히도 쓸 수 있구나 하는걸 알았다.

 

플레이어의 인벤토리 List<item> 에서 Find를 사용하는 함수이다.

 

빨간상자 쳐진 Predicate<T> 일반화된 델리게이트(delegate)로, 해당조건문을 동작하면 참,거짓 을 반환하는 함수 포인터이다.

 

Predicate<T> 자료형은 즉 함수 포인터이기에 함수를 만들고 해당 자료형에 함수를 초기화하고 사용 할 수있다.

하지만 이렇게 쓰는것보다 바로 람다식을 사용하여 간단하게 쓸수있다. 

 

 var matchedItem = PlayerInventory.Find(item => item.ItemNum == SelectTypeItemList[i].ItemNum);

즉 , 해당 함수는 ItemNum 을 비교하여 참,거짓 값을 반환하여 참이면 해당 데이터(Item)를 거짓이면 null 값을 반환한다.

(Find 함수의 반환값은 Item? 이기에 null값을 받을 수있다.)

+ Recent posts