5장 람다로 프로그래밍
KOTLIN IN ACTION 5장을 요약한 내용입니다.
람다 식과 멤버 참조
람다 소개: 코드 블록을 함수 인자로 넘기기
람다와 컬렉션
data class Person(val name: String, val age: Int)
/* Java */
fun findTheOldest(people: List<Person>) {
var maxAge = 0
var theOldest: Person? = null
for (person in people) {
if (person.age > maxAge) {
maxAge = person.age
theOldest = person
}
}
println(theOldest)
}
fun main(args: Array<String>) {
val people = listOf(Person("Alice", 29), Person("Bob", 31))
findTheOldest(people)
}
/* Kotlin */
>>> val people = listOf(Person("Alice", 29), Person("Bob", 31))
>>> println(people.maxBy { it.age })
Person(name=Bob, age=31)현재 영역에 있는 변수에 접근
어떻게 그런 동작이 가능할까?
컬렉션 함수형 API
필수적인 함수: filter와 map
all, any, count, find: 컬렉션에 술어 적용
flatMap과 flatten: 중첩된 컬렉션 안의 원소 처리
지연 계산(lazy) 컬렉션 연산
시퀀스 연산 실행: 중간 연산과 최종 연산
자바 함수형 인터페이스 활용
자바 메소드에 람다를 인자로 전달
SAM 생성자: 람다를 함수형 인터페이스로 명시적으로 변경
수신 객체 지정 람다: with와 apply
with 함수
apply 함수
요약
Last updated