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,面向对象编程)的严重违反,不推荐使用。(父类是不能转换为子类的,子类包含了父类所有的方法和属性,而父类不一定包含子类所有的方法和属性,所以这种转换是不可以的,即便是两个具有父子关系的空类型,也不行。)