美文网首页
[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