在看苹果官方的Swift Language的时候,遇到实验:Write an extension for the Double type that add an absoluteValue property. 在直接使用extension加入了属性的时候,出现错误(当然这时候代码还没写完,PlayGround就是好用)。
extension Double { // add absoluteValue property to Double type by using extension. var absoluteValue:Double { } }
结果报错,说:'var' declaration without getter/setter method not allowed here
@Author: twlkyao转载或者引用请保留此行。
依据错误原因,加入getter和setter方法,完美解决这个问题,代码例如以下:
extension Double { // add absoluteValue property to Double type by using extension. var absoluteValue:Double { get{ // the get could be omitted. if self > 0 { return self } else { return -self } } } } var doubleNum = -2.2 doubleNum.absoluteValue
注:extensionkeyword能够为结构体或者类加入计算属性(实例属性或者类属性),还能够使结构体或者类採用特定的协议。