一、类型的检查与转换
1.1、类型检查
is 与 !is 操作符用于在运行时检查对象是否符合给定类型:
1.2、智能转换
在许多情况下,不需要在 Kotlin 中使用显式转换操作符,因为编译器跟踪不可变值的 is 检查以及显式转换,并在需要时自动插入安全的转换
例如,对于以下例子来说,当判断 value 为 String 类型通过时,就可以直接将 value 当做 String 类型变量并调用其内部属性
编译器会指定根据上下文环境,将变量智能转换为合适的类型
1.3、不安全的转换操作符
如果转换是不可能的,转换操作符 as 会抛出一个异常。因此,我们称之为不安全的转换操作符
需要注意的是,null 不能转换为 String 变量,因为该类型不是可空的
因此如下转换会抛出异常
为了匹配安全,可以转换的类型声明为可空类型
1.4、安全的转换操作符
可以使用安全转换操作符 as? 来避免在转换时抛出异常,它在失败时返回 null