Tag:

价值虚构之后,智能投射到“布尔”是不可能的

第二个println错误: 智能投射到'布尔'是不可能的,因为'r.isSquare'是一个可变的属性,可以在这个时候改变 fun main(args: Array<String>) { val r: Rectangle = Rectangle(5,5) println(r.isSquare) r.isSquare = true println(r.isSquare) // error but works with println(r.isSquare?:false) } data class Rectangle(var height: Int, var width: Int){ var isSquare: Boolean? = null } 如果它是空的,它会像第一个println一样打印null,为什么我必须这样做呢? 编辑2 感谢所有的答案,我现在明白了:首先是println println(message: Any?) 第二个println是 println(message: Boolean) 因为r.isSquare = true使编译器信任isSquare是布尔,不再是布尔? EDIT2 这里是我如何处理编译器来保持信任isSquare是布尔? fun main(args: Array<String>) { val […]