data class M(val int: Int?)
@Test
fun test() {
val m1 = M(0)
val m2 = M(1)
val m3 = M(0)
val i = (m1.int ?: 0) + (m2.int ?: 0) + (m3.int ?: 0)
val j = (m1.int ?: 0)
+(m2.int ?: 0)
+(m3.int ?: 0)
println(i)
println(j)
}
打印结果i j分别是1和0,百思不得骑姐。
后来发现kotlin是将val j = (m1.int?:0)当做一行,直接将m1.int赋值给了j
+(m2.int?:0)和(m3?:int?:0)当做另起一行了。
你要是++(int)当做一行还能理解,+(int)居然不报错是为啥。。谁加谁啊
以后碰到运算j这种情况,在最外面多加个括号吧












网友评论