오늘은 개인과제 해설 세션을 듣게 되었습니다. 거기서 델리게이트와 람다에 관한 이야기가 나왔는데 람다는 약간 모양이 생소하다 보니 정리 해 본적이 없는 것 같습니다. 그래서 짧게 정리 해보려고 합니다.
람다식(lambda expression)
프로그래밍에서 익명 함수(anonymous function)를 만들기 위한 간결한 방법
특징
익명 함수: 람다식은 이름이 없는 함수로, 한 번 사용하고 버릴 수 있는 간단한 함수를 정의하는데 유용함.
간결성: 람다식을 사용하면 코드를 간결하게 유지할 수 있으며, 작은 함수를 짧게 표현할 수 있음.
함수형 프로그래밍: 람다식은 함수형 프로그래밍 패러다임을 지원하는 중요한 기능으로, 함수를 값처럼 다룰 수 있게 함.
예제
using System; class Program { static void Main() { // 간단한 람다식을 사용한 델리게이트 Func<int, int, int> add = (x, y) => x + y; int result = add(2, 3); Console.WriteLine(result); // 출력: 5 // LINQ 쿼리에서 람다식 사용 int[] numbers = { 1, 2, 3, 4, 5 }; var evenNumbers = numbers.Where(n => n % 2 == 0); foreach (var number in evenNumbers) { Console.WriteLine(number); // 출력: 2, 4 } } }
위의 예제에서 Func<int, int, int> add는 두 정수를 더하는 함수를 나타내며, 람다식 (x, y) => x + y를 사용하여 정의.
LINQ 쿼리에서도 람다식을 사용하여 필터링 조건을 지정할 수 있음.
간단한 팝업 띄우기
델리게이트 이용
public class PopupManager : MonoBehaviour { public void ShowPopup(Action action) { Debug.Log("팝업을 띄웁니다."); // 전달된 action 실행 action.Invoke(); } }
람다식을 전달
public class Example : MonoBehaviour { private void Start() { // 팝업 매니저 생성 PopupManager popupManager = new PopupManager(); // 람다식을 직접 전달 popupManager.ShowPopup(() => { Debug.Log("팝업에서 실행될 동작을 정의합니다."); }); } }
이런 식으로 매개변수 Action에 들어가야 할 함수를 전달 할 때 람다식을 사용하여 코드를 간결하게 줄일 수 있음.