在 swift 中,包含三种类型(type):structure,enumeration,class
其中 structure 和 enumeration 是值类型 (value type),class 是引用类型(reference type)
在 structure 和 enumeration 中也可以拥有方法(method),其中方法可以为实例方法(instance method)和类方法(type method),实例方法和类型的一个实例绑定。
Structures and enumerations are value types.
By default, the properties of a value type cannot be modified from within its instance methods.”(结构体和枚举是值类型,默认的,值类型的属性不能在他们的实例方法中被更改。)
举例:
1 | struct Point { |
编译器会报错
那么想要在值类型的实例方法中修改其属性是否可行呢?
这时,我们就要用到 mutating 关键字了
1 | struct Point { |
另外,在值类型的实例方法中也可以修改 self 的属性值
1 | enum TriStateSwitch { |
在 class 类型中不存在上述问题,可以随意修改。
参考资料:The Swift Programming Language