is操作符和!is反向操作符:类型检查
var a = "Hello"
var b = a is String // true
var c = a !is String //false
Kotlin编辑器非常智能,它能识别is和!is操作符,通过这两个操作符,能判断出当前对象是否属于is或者!is后面的数据类型。如果当前对象属于is后面的数据类型,则在使用该对象时就自动进行了智能类型转换。
as?操作符:安全类型转换
使用as操作符进行强制类型转换时,如果转换错误,程序会报错并抛出异常。为了避免这种情况出现,Kotlin语言提供了安全转换类型的操作符as?。使用as?操作符进行类型转换时,如果转换失败,则会返回null,不会抛出异常。
fun main() {
var a = 1
var b = a as? String
println(b?.length)
}
// null
空值Null
声明一个可空变量
var s1 = "Tom"
var s2:String? = null
?.:安全调用符
同as?相似,?.作用是判断变量是否为null,如果不为null才调用变量的成员方法或者属性,否则返回null。
var s1 = "Tom"
var s2:String? = null
var s3 = s2?.length
// null