Kotlin mutableMap.put returns 可为空
Kotlin mutableMap.put returns nullable
在 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
在 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