kotlin中is、!is、as、as?的使用方式

1.is运算符相当于java中的instanceof,用来判断当前类型是不是对应的类型(可以是对应的类型的子类),说的很抽象,上代码看一下。

fun main() {
    val str = "helloWorld"
    println(str is String)
}

输出:true

2.!is是is的否定形式(就是效果跟is相反),上代码看一下

fun main() {
    val x = 10
    println(x !is Int)
}

输出:false

3.as是相当于是显示类型转换(就是强制类型转换),转换成功就转换成功,转换失败会报错

4.as?比as安全一点,转换成功就转换成功,转换失败会返回null

注意:父类转换为子类是对OOP(Object Oriented Programming,面向对象编程)的严重违反,不推荐使用。(父类是不能转换为子类的,子类包含了父类所有的方法和属性,而父类不一定包含子类所有的方法和属性,所以这种转换是不可以的,即便是两个具有父子关系的空类型,也不行。)

经验分享 程序员 微信小程序 职场和发展