Closed freelf closed 6 years ago
如果把 protocol 定义中的
mutating
去掉的话,MyCar
就怎么都过不了编译了:保持现有代码不变的话,会报错说没有实现协议;如果去掉mutating
的话,会报错说不能改变结构体成员。
原文的 “都过不了编译了” 后面是一个冒号,后面的两个从句 1: “保持现有代码不变的话,会报错说没有实现协议”,2: “如果去掉 mutating
的话,会报错说不能改变结构体成员” 是针对“把protocol中的mutating去掉”这个前提下,对 MyCar
进行操作后的结果。
用词和句法不是很好,我会进行一些修正力求读起来减少歧义。
谢谢!
“protocol Vehicle { var numberOfWheels: Int {get} var color: UIColor {get set}
}
struct MyCar: Vehicle { let numberOfWheels = 4 var color = UIColor.blue
}” “如果把 protocol 定义中的 mutating 去掉的话,MyCar 就怎么都过不了编译了:保持现有代码不变的话,会报错说没有实现协议;如果去掉 mutating 的话,会报错说不能改变结构体成员。”
这里的描述不对,应该是:如果把protocol中的mutating去掉的话,MyCar会报没有遵守协议。保持不变的话是代码没错。如果把struct中的mutating去掉的话,会编译错误