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.maxBy { it.age ?: 0 } // 람다 식과 엘비스 연산자
println("나이가 가장 많은 사람: $oldest") // 문자열 템플릿
// 결과: 나이가 가장 많은 사람: Person(name=철수, age=29) // toString 자동 생성
?: => 엘비스 연산자 - 코드에서 age가 null인 경우 0을 반환하고, 그렇지 않은 경우 age 값을 반환(영희의 age는 null이기 때문에 0을 반환)
코틀린의 주목적: 자바가 사용되고 있는 모든 용도에 적합하고 간결하고 생산적이고 안전한 대체 언어를 제공하는 것