1. 람다식 또는 람다란?
- 람다식 또는 람다는 기본적으로 다름 함수에 넘길 수 있는 작은 코드 조각을 뜻한다. 람다를 사용하면 쉽게 공통 코드 구조를 라이브러리 함수로 뽑아낼 수 있다.
- 코틀린 람다식은 항상 중괄호로 둘러싸여 있다. 인자 목록 주변에는 괄호가 없다는 사실을 꼭 기억하라. 화살표 -> 가 인자목록과 람다 본문을 구분해준다.
- 로컬변수처럼 컴파일러는 람다 파라미터의 타입도 추론이 가능하다. 파라미터 타입을 명시할 필요가 없다.
People.maxBy{ p:People -> p.age } <- 파라미터 타입을 명시
People.maxBy{ p -> p.age } <- 파라미터 타입을 생략 (컴파일러가 추론)
- 람다식을 변수에 저장할 수 있다. 람다가 저장된 변수를 다른 일반 함수와 마찬가지로 다룰 수 있다. 람다의 파라미터가 하나뿐이고 그 타입을 컴파일러가 추론할 수 있는경우 it을 바로 쓸 수 있다.
People.maxBy{ it. age}
- 람다를 변수에 저장할 때는 파라미터 타입을 추론할 문맥이 존재하지 않는다. 따라서 파라미터 타입을 명시해야한다.
val getAge = { p:Person -> p.age }
- 람다가 여러줄로 이뤄진 경우 본문의 맨 마지막에 있는 식이 람다의 결과값이 된다.
- 다양하게 사용가능
2. 람다에서 사용하기 좋은 함수 filter 와 map
- 필터와 맵은 컬렉션을 활용할 때 기반이 되는 함수다. 대부분 켈렉션의 연산을 이 두 함수를 통해 표현할 수 있다.
'기초를 모르면 나가리(코틀린 인 액션)' 카테고리의 다른 글
인터페이스 작성방법, 상속, 구현 등등 정리 (0) | 2023.11.19 |
---|---|
코틀린 constructor 주생성자, 부생성자 (1) | 2023.10.27 |
코틀린 클래스, 객체, 인터페이스 (0) | 2023.10.17 |
코틀린 컬렉션과 확장함수 (0) | 2023.10.16 |
코틀린 기본구조, 변수 선언 등 기초 설명 (0) | 2023.08.29 |