美文网首页
[Kotlin]空类型与智能转换

[Kotlin]空类型与智能转换

作者: Tsun424 | 来源:发表于2019-02-07 19:04 被阅读0次

空类型相关

任何类型都有可空和不可空两种

  • val notNull: String = null // 错误,不可为空
  • val nullable: String= null //正确,可以为空
  • notNull.length // 正确,不可为空的只可以直接调用
  • nullable.length // 错误, 可能为空,不能直接取长度
  • nullable!!.length // 正确,强制认定nullable不可为空
  • nullable?.length // 正确,若nullable为空,返回空,否则返回长度

类型转换

类似Java类型转换
失败则抛异常
val sub: SubClass = parent as SubClass

安全类型转换
转换失败则返回null,不抛异常
val sub: SubClass = parent as? SubClass

智能类型转换
Kotlin编译器尽可能的推导类型,防止不必要的类型判断

if (parent is SubClass) parent.<子类成员>

以下nullable先判断不为空,所以可以直接取length

if (nullable != null) nullable.length

相关文章

网友评论

      本文标题:[Kotlin]空类型与智能转换

      本文链接:https://www.haomeiwen.com/subject/rtjisqtx.html