1.is运算符和 !is 运算符
is 运算符类似于Java中的 instanceof 关键字的用法。is 运算符可以检查对象是否与特定的类型兼容(兼容:此对象是该类型,或者派生类),同时也用来检查对象(变量)是否属于某数据类型(如Int、String、Boolean等)。
!is运算符是它的否定形式。
var smile = "hahaha"
Log.d(TAG, "is :${smile is String}")//输出:true
Log.d(TAG, "is :${smile !is String}")//输出:false
2.as运算符和as?运算符
as运算符用于执行引用类型的显式类型转换。
如果要转换的类型与指定的类型兼容,转换就会成功进行;如果类型不兼容,使用as?运算符就会返回值null。在Kotlin中,父类是禁止转换为子类型的。
open class Fruit
open class Apple(name: String) : Fruit()
val mFruit = Fruit()
val mApple = Apple("苹果")
Log.d(TAG,"AS:${mApple as Apple}")
Log.d(TAG,"AS?:${mApple as? Fruit}")
Log.d(TAG,"AS:${mFruit as Apple}")
Log.d(TAG,"AS?:${mFruit as? Fruit}")
参考文章

被折叠的 条评论
为什么被折叠?



