美文网首页
Swfit 中 ? ! as as! as ? 的一些笔

Swfit 中 ? ! as as! as ? 的一些笔

作者: 酷酷的P | 来源:发表于2022-07-27 11:29 被阅读0次

    【关于?】

    可选类型(Optional),没有初始值的属性

    例:var name: String? nil

    var name: String? =  “Text” String

    Optional其实是个enum,里面有None和Some两种类型。其实所谓的nil就是Optional.None , 非nil就是Optional.Some,然后会通过Some(T)包装(wrap)原始值。这也是为什么在使用Optional的时候要拆包(从enum里取出来原始值)

    【关于!】

    操作一个可选类型的变量,进行强解包的时候用到。如果有值就会得到变量的值,如果为nil那么程序就会crash

    【as的定义】:有保证的转换

    1、向上转换,转成自己的父类型

    2、数据类型转换

    3、switch语句中进行模式匹配

    【as!的定义】 强制类型转换,向下转型时使用。

    class Animal {}

    class Cat: Animal {}

    let animal: Animal = Cat()

    let cat = animal as! Cat

    【as?的定义】  同as! 转换失败返回nil,不会报错

    【??的定义】 取两个中不为nil的

    相关文章

      网友评论

          本文标题:Swfit 中 ? ! as as! as ? 的一些笔

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