@(Swifter - 100 个 Swift 必备 Tips (第二版) 读书笔记)[swift][ios]
1、mutating 使用
struct 一般用于定义一些纯数据类型,如果在方法里需要更改struct中的变量值那么必须加上 mutating 关键字,默认struct 出来的变量是Immutable.
struct Student{
var age : Int
var weight : Int
var height : Int
mutating func gainWeight(newWeight: Int){
weight += newWeight;
}
}
2、protocol的方法声明为mutating
swift中struct、enum、�class都可以继承protocol 只有实现了mutating字段的方法才能在struct、enum更改自身变量,class中可以不写mutating字段.
protocol Vehicle
{
var numberOfWheels: Int {get}
var color: UIColor {get set}
mutating func changeColor()
}
struct MyCar: Vehicle {
let numberOfWheels = 4
var color = UIColor.blueColor()
mutating func changeColor() {
color = UIColor.redColor()
}
}
class Bmw: Vehicle{
//protocol里面所有的属性子类都必须复写;
let numberOfWheels = 4
var color = UIColor.redColor()
//可以不需要写mutating
func changeColor() {
color = UIColor.blackColor();
}
}
网友评论