Kotlin mutableMap.put возвращает значение nullable

В стандартной версии kotlin мы имеем интерфейс MutableMap который имеет этот метод

 public abstract fun put(key: K, value: V): V? 

Почему он возвращает значение, равное нулю, если оно принимает значение, не имеющее значения NULL? Это сделано для java interop?

Solutions Collecting From Web of "Kotlin mutableMap.put возвращает значение nullable"

Взгляните на определение

 /** * Associates the specified [value] with the specified [key] in the map. * * @return the previous value associated with the key, or `null` if the key was not present in the map. */ public fun put(key: K, value: V): V? 

Так

 fun main(args: Array<String>) { var m: MutableMap<Int, String> = mutableMapOf(Pair(1, "a")) val prev1Value = m.put(1, "b") val prev2Value = m.put(2, "c") println(m) println("Previous value of 1 was: $prev1Value") println("Previous value of 2 was: $prev2Value") } 

Печать:

 {1=b, 2=c} Previous value of 1 was: a Previous value of 2 was: null