【Enumeration and Structures】
1、使用toRaw、fromRaw方法可以在原始值之间。注意enum的定义中使用了case。另外要注意switch中的枚举值。
2、struct和class最大的区别在于,struct被传递时,使用的是使用的是copy。
3、枚举变量可以有关联数据。associated-value。
【Protocols and Extension】
1、使用protocol定义一个协议。
2、实现一个协议的方式就是继承它。
mutating用于在struct中声明方法,使得该方法可以修改struct中的成员变量。一个class永远不需要mutating修饰,因为class中的method永远可以修改成员变量。
3、extension用于扩展一个已有类。
4、使用protocol来指向一个对象。
5、范型,先来一个函数模板:
再来一个枚举模板:
使用where来限定类型必须满足的条件:
有时可以省略where,例如<T:Equtable>等价于<T where T:Equatable>。