我是Swift编程语言(Swift 3 beta)中的swift和swift的新手。下面是他们的协议扩展书中的一个简单例子
protocol ExampleProtocol {
var simpleDescription: String {get}
mutating func adjust()
}
class SimpleClass: ExampleProtocol {
var simpleDescription: String = "A vert simple class."
var anotherProperty: Int = 69105
func adjust() {
simpleDescription += "Now 100% adjusted."
}
}
var a = SimpleClass()
a.adjust()
let aDescripition = a.simpleDescription
struct SimpleStructure: ExampleProtocol {
var simpleDescription: String = "A simple structure"
mutating func adjust() {
simpleDescription += "(adjusted)"
}
}
var b = SimpleStructure()
b.adjust()
let bDescription = b.simpleDescription
extension Int: ExampleProtocol{
var simpleDescription : String {
return "The number \(self)"
}
mutating func adjust() {
self += 42
}
}
//var c = SimpleClass()
//c.adjust()
print(7.simpleDescription)
结束打印结果为“数字7 \ n”。正如你可以看到,在扩展中,我们有变异功能,为自己添加42。我的问题是我们如何在扩展中调用mutating函数,以便结果是+42的附加值。
答案 0 :(得分:0)
我们如何在扩展中调用mutating函数,以便结果是+42的附加值。?
导致+42的附加值的函数是Int的adjust()
函数。要调用它,只需运行:
var c = 7
c.adjust()
print(c)
c
是49(7 + 42)