协议和扩展迅速

时间:2016-07-11 12:50:07

标签: swift

我是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的附加值。

1 个答案:

答案 0 :(得分:0)

  

我们如何在扩展中调用mutating函数,以便结果是+42的附加值。?

导致+42的附加值的函数是Int的adjust()函数。要调用它,只需运行:

var c = 7
c.adjust()
print(c)

c是49(7 + 42)

相关问题