Kotlin In Action 1장 코틀린이란 무엇이며, 왜 필요한가?
내용을 요약했습니다.
아래의 코드는 http://try.kotl.in에서 실행해볼 수 있습니다.
코틀린은 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어다. 자바 코드와의 상호운용성을 중시한다.
1 data class Person(val name: String,
2 val age: Int? = null)
3
4 fun main(args: Array<String>) {
5 val persons = listOf(Person("철수"),
6 Person("영희", age = 29))
7
8 val oldest = persons.maxBy { it.age ?: 0 }
9 println("나이가 가장 많은 사람: $oldest")
10 }
Int?
는 Int형 nullable을 의미하고, null은 default값을 의미합니다.it
파라미터를 받습니다. person
과 같은 다른 값을 사용하니 에러가 발생했습니다. 엘비스 연산자 ?:
는 age가 null이면 0을 반환합니다. 아니면 age를 반환합니다.코틀린의 주목적은 자바가 사용되고 있는 곳에 더 간결하고 생산적이며 안전한 대체 언어를 제공하는 것입니다.
코틀린은 타입 추론, nullable type, function type을 지원합니다.
코틀린은 자바와 동일하게 정적 타입 지정 언어입니다.
컴파일러가 문맥을 고려해 변수 타입을 결정하는 기능을 타입 추론(type inference)라 합니다.
코틀린은 아래의 코드에서 x의 타입이 Int임을 자동으로 알아내며 정적 타입 지정 언어의 불편함을 해소합니다.
val x = 1
코틀린은 null이 될 수 있는 타입을 지원합니다.
nullable을 지원함에 따라 컴파일 시점에 null pointer exception여부를 검사할 수 있어 신뢰성을 높일 수 있습니다.
코틀린은 function type을 지원합니다.
코틀린은 null이 될 수 없는 값을 추적하며, 실행 시점에 NPE이 발생할 수 있는 연산을 사용하는 코드를 금지합니다.
val s: String? = null // null 될 수 있음
val s: String = "" // null 될 수 없음
코틀린은 타입 검사와 캐스트가 한 연산자에서 이뤄집니다.
if (value is String)
println(value.toUpperCase())