Kotlin mutableMap.put返回空值

在kotlin标准库中我们有MutableMap接口,它有这个方法

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

为什么它返回可以为空的值,如果它接受不可为空的值? 这是完成的Java互操作?

看看定义

 /** * 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