1.枚举
a).定义示例:
enum ExampleEnum : Int /*原始值类型*/{
case FirstValue /*FirstValue为成员值*/
case SecondValue = 1 /*1为默认值,或者称为原始值*/
case ThirdValue, FourthValue, ...
...
}
b).成员值转换原始值方法:枚举名.成员值.toRow(),原始值转化为成员值方法:枚举名.fromRaw();
c).相关值:类似于c众的联合类型;
2.结构体和类
a).结构体可以看成是轻量级的类,它既可以定义属性,又可以定义成员方法;
b).结构体不能被继承、不能强制转换、不能使用析构、不能使用引用计数;
c).a、b中说的东西,类都能干;
d).值类型的实例化的结果叫“实例”,类的实例化的结果叫“对象”;
e).入参加“inout”修饰,传入的就是引用了(此时就不是副本了),也就是说被传入的实例可以在函数中被修改;
f).引用类型使用“===”、“!==”进行比较是不是同一个对象,值类型要使用的话需要重写该两个操作符;
e)."=="、"!=",在类、结构体、枚举中,均需要重写才能使用;
h).类型嵌套不建议使用,因为会大大降低代码可读性。
3.可选类型和可选链
a).可选绑定:在if或者while中 ,对可选类型对象赋值 并 进行判断 的写法;
b).强制拆封,可选类型实例或对象后加“!”;
c).隐式拆封:“?”使用“!“代替的修饰的实例或对象,在使用时就和普通实例活对象一样,此种使用方式是隐式拆封;
e).可选链中使用”!“要比使用”?“出现运行异常的概率大得多。