1. is
运算符和!is
运算符
is
运算符类似Java
中的instanceof
,在运行时可以检查对象是否与特定的类型兼容。以及对象的类型(Int
,String
等),!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
}
网友评论