【发布时间】:2021-10-14 16:15:14
【问题描述】:
我一直在尝试在 Kotlin 中获取变量的类型,我发现可以这样做:
fun main(args: Array<String>) {
var num1: Short = 1
var num2 = 100000
var num3 = 1000000000000
var num4 = 3.14
val numList: List<Any> = listOf(num1, num2, num3, num4)
for(num in numList) {
if (num is Short) {
println("Short: $num")
} else if (num is Int) {
println("Int: $num")
} else if (num is Long) {
println("Long: $num")
} else {
println("$num not in listed types")
}
}
}
Output:
Short: 1
Int: 100000
Long: 1000000000000
3.14 not in listed types
...但我不能这样做:
fun main(args: Array<String>) {
var num2 = 100000
if (num2 is Long) {
println("Long: $num2")
} else {
println("$num2 not in listed types")
}
}
Output:
Kotlin: Incompatible types: Long and Int
为什么?有什么区别?
【问题讨论】: