美文网首页
6. 类型检测与类型转换

6. 类型检测与类型转换

作者: 努力生活的西鱼 | 来源:发表于2021-10-11 10:42 被阅读0次
    1. is运算符和!is运算符

    is运算符类似Java中的instanceof,在运行时可以检查对象是否与特定的类型兼容。以及对象的类型(IntString等),!is是它的否定形式

    private fun isStringType(): Unit {
        var str: String? = "魔都吴小猛";
        if (str is String) {
            println("$str is String"); // 魔都吴小猛 is String
        }
    
        str = null;
        if (str !is String) {
            println("$str is not String"); // null is not String
        }
    }
    
    2. as运算符和as?运算符

    as运算符用于对引用类型的显式类型转换,如果要转换的类型与指定的类型兼容,则转换会成功,否则会报错。
    使用as?进行转换的时候,如果类型不兼容,不会报错,会返回null

    private fun classCast(): Unit {
        val num1 :Int? = "Kotlin" as Int; // 报java.lang.ClassCastException
        println("num1 = $num1");
    }
    

    上面会报转换异常的错误

    private fun classCast(): Unit {
        val num1 :Int? = "Kotlin" as? Int;
        println("num1 = $num1"); // 输出:num1 = null
    }
    

    相关文章

      网友评论

          本文标题:6. 类型检测与类型转换

          本文链接:https://www.haomeiwen.com/subject/alqfoltx.html