05. 类型检测及类型自动转换

在 Kotlin 中有个 is 运算符,用了检测一个表达式是否是某个类型的实例
判断之后,类型会根据情况自动发生转换

fun getStringLength(x: Any): Int? {
    if(x is String){
        //这里的 x 已经是 String 类型了
        return x.length
    }
    //这里的 x 还是 Any 类型
    return null
}

如果是反向判断也可以发生变化

fun getStringLength2(x: Any): Int? {
    if(x !is String){
        //这里的 x 是 Any 类型
        return null
    }
    //这里的 x 已经是 String 类型了
    return x.length
}

甚至在 && 运算符的右侧进行类型转换

fun getStringLength3(x: Any): Int? {
    // 在 && 运算符的右侧, x 的类型会被自动转换为 String
    if(x is String && x.length > 0){
        return x.length
    }
    return null
}

调用代码方法

    println(getStringLength("shun"))
    println(getStringLength(98))
    println(getStringLength2("shun"))
    println(getStringLength2(66))
    println(getStringLength3("shun"))
    println(getStringLength3(77))

运行结果

4
null
4
null
4
null
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容