맵 조회
맵에 [] 연산자를 쓰면 키에 대응되는 값을 찾습니다. 만약 해당 키 값이 맵에 없다면 null이 반환됩니다.
getValue 함수는 대응하는 값을 반환하거나, 없다면 예외를 발생시킵니다. withDefault로 만든 맵의 경우에는, getValue로 없는 키를 조회해도 예외를 발생시키지 않고 미리 지정한 기본값을 반환해 줍니다.
fun main(args: Array<String>) {
//sampleStart
val map = mapOf("키" to 42)
val value1 = map["키"] // 1
val value2 = map["키2"] // 2
val value3: Int = map.getValue("키") // 1
val mapWithDefault = map.withDefault { k -> k.length }
val value4 = mapWithDefault.getValue("키2") // 3
try {
map.getValue("없는 키") // 4
} catch (e: NoSuchElementException) {
println("메시지: $e")
}
//sampleEnd
println("value1 = $value1")
println("value2 = $value2")
println("value3 = $value3")
println("value4 = $value4")
}
"키"에 해당하는 값인 42가 반환됩니다."키2"는 이 맵에 없기 때문에null을 반환합니다."키2"가 이 맵에 없지만, 디폴트 값인 2가 반환됩니다."없는 키"가 이 맵에 없기 때문에,NoSuchElementException예외가 발생합니다.