data class Person(val name: String, val age : Int? = null)
fun main(args:Array<String>) {
val persons = listOf(Person("영희"), Person("철수", age = 29))
val oldest = persons.maxByOrNull{ it.age ?: 0 }
println("나이가 가장 많은 사람 : $oldest")
}
name 과 age 라는 프로퍼티가 들어간 간단한 데이터 클래스를 정의한다. (매개변수라고 안하고 프로퍼티라고 하나보다.)
maxByOrNull 함수에 전달한 람다식은 파라미터를 하나 받는데, it 이라는 이름을 사용하면 람다식의 유일한 인자를 사용할 수 있다. ( it은 인자가 1개일 때만 사용하는 것 같다.
3. 엘비스 연산자라고 부르는 ?: 는 age가 null인 경우 0을 반환하고, 그렇지 않은 경우 age의 값을 반환한다.
( { it.age ?: 0 } 이 부분)
나이가 가장 많은 사람 : Person(name=철수, age=29)
가 된다.
코틀린의 기능을 맛보기로 알아볼 수 있었던 간단한 예제. 굉장히 직관적이고 이해하기가 쉽다.