Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

zyeon's 작심삼일 코딩 공부

C#에서 람다식 본문

unity

C#에서 람다식

젼뀨 2024. 8. 8. 03:08

C#에서 '=>' 연산자는 람다식을 만들 때 사용한다.

 

람다식

Func<int, int, int> add = (a, b) => a + b;
add(2, 3); // 5 출력

Func 델리게이트는 람다식을 저장하고 호출하는데 사용된다.

제네릭 타입을 사용해 매개변수와 반환 타입을 정의한다.

Func<int, int, int>에서 앞에 두 int는 입력 매개변수이고, 세 번 째 int는 반환값을 나타낸다.

 

람다를 이용한 LINQ 쿼리 사용

int[] numbers = { 1, 2, 3 };
var squaredNumbers = numbers.Select(x => x * x);
Console.WriteLine(string.Join(", ", squaredNumbers) // 1, 4, 9 출력

우선 LINQ 쿼리는 SQL과 유사한 방식으로 데이터를 관리해주는 기능이라고 한다.

SQL과 같은 키워드가 많고 기능도 동일하다.

 

위 코드에선 Select()가 LINQ 메서드 체이닝을 사용해 배열의 각 요소를 

'x => x * x' 람다식에 맞게 변환해 주는 역할을 한다.

 

타입을 명시하지 않고 var을 사용하면 컴파일러가 타입을 자동 추론해준다. c++에서 auto의 기능과 같아 보인다.

위 코드에선 IEnumerable<int> 타입의 결과로 저장해 모든 요소를 순회할 수 있게 해준다.

 

Join() 모든 요소를 문자열로 변환하여 쉼표와 공백으로 구분된 문자열을 생성한다.

 

SQL이 기억이 잘 나지않아 여기서 사용된 select와 join만 간단히 정리해보았다.

 

LINQ와 람다식을 활용하면 데이터 분석과 변환에 용이하다.

 

식 본문 멤버

returnType MethodName (parametrers) => experssion;

int Add (int a, int b) => a + b;

실제로는 위와 같이 반환타입 함수명 (파라미터) => 실행코드;와 같은 형태를 주로 사용할 것 같다.

 

dialogText.DOText(dialogData, dialogData.Length * 0.08f).OnComplete(() => isTyping = false);

 

유니티를 하면서 콜백 함수에 람다식을 자주 주는 것 같아서 정리해보았다.

위 코드의 '() => obj.gameObject.SetActive(false)' 처럼 람다식에 이름을 안주고 사용할 수도 있다.

'unity' 카테고리의 다른 글

2.5D 게임에서 캐릭터 이동 구현  (0) 2024.08.28
오브젝트 풀링 (오브젝트 풀 패턴)  (0) 2024.08.24
싱글톤 패턴  (0) 2024.08.22
WorldToScreenPoint, ScreenToWorldPoint  (0) 2024.08.20
Camera.main 오류 (CS1061)  (0) 2024.08.09