1、递归枚举
indirect enum di {
case num(Int)
case count(di)
}
2、类占用内存大小
print(MemoryLayout<Int>.size) 实际用到的空间
print(MemoryLayout<Int>.stride) 分配占用的空间
print(MemoryLayout<Int>.alignment) 内存对齐大小
enum eType {
case one(Int,Int,Int)
case two(Int,Int)
case three
case four
case five
}
eType占用25
24是Int 1个是存储类型
3、强解解包 !
4、可选项版定
可以使用可选项绑定来判断可选项是否包含值
口如果包含就自动解包,把值赋给一个临时的常量(let)或者变量(var),并返回true,否则返回false
5、?? 空合并运算符
a??b (返回类型是否是可选类型受b影响)
6 隐式解包
在某些情况下,可选项一旦被设定值之后,就会一直拥有值
在这种情况下,可以去掉检查,也不必每次访问的时候都进行解包,因为它能确定每次访问的时候都有值
可以在类型后面加个感叹号!定义一个隐式解包的可选项
let num:Int! = 10 //!隐式解包可选项
7、多重可选项
var num1 :Int ?? = 10
查看结构
fr v - R num1