【发布时间】:2020-06-21 18:15:42
【问题描述】:
val a: Int = 100
val boxedA: Int? = a
val anotherBoxedA: Int? = a
val b: Int = 10000
val boxedB: Int? = b
val anotherBoxedB: Int? = b
println(boxedA === anotherBoxedA) // true
println(boxedB === anotherBoxedB) // false
我不明白boexA === andotherBoxedA和boexB === andotherBoxedB有什么区别
更令人困惑的是当更改 b t0 100 时输出为真
val a: Int = 100
val boxedA: Int? = a
val anotherBoxedA: Int? = a
val b: Int = 100
val boxedB: Int? = b
val anotherBoxedB: Int? = b
println(boxedA === anotherBoxedA) // true
println(boxedB === anotherBoxedB) // true
所以,我需要解释一下这段代码。
【问题讨论】:
-
这可能是运行时维护的小型整数缓存。有关详细信息,请参阅stackoverflow.com/questions/15052216/…。
-
是的,非常感谢@MattTimmermans omajid
标签: kotlin