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