kotlin学习笔记-数据类型 类型检测、判断

获取变量的类型

    val number = 42
    val type = number::class
    println(type) // 输出 int (Kotlin reflection is not available),似乎还可能输出别的?
    val typeName = number::class.simpleName
    println(typeName) // 输出:Int
    println(typeName == "Int")

is 判断变量是不是这个类型

可以搭配 ! 感叹号 来把结果取反

    val number = 42
    println(number is Int) // 输出:true
    println(number !is Int) // 输出:false, 感叹号 ! 取反

is 的更多用法

fun printResult(x: Any) {
    when (x) {
        is Int -> print(x + 1)
        is String -> print(x.length + 1)
        is IntArray -> print(x.sum())
        else -> print("Unknown type")
    }
}
 
fun main() {
    val x = 42
    printResult(x)
 
    val y = "Hello, world!"
    printResult(y)
 
    val z = intArrayOf(1, 2, 3)
    printResult(z)
}