是否可以在函数变量上添加set,get,didSet,willSet

时间:2017-03-22 04:50:41

标签: swift

以下是基本代码段

var doStuffCallCounter: Int = 0

func doStuff() {
    doStuffCallCounter += 1
    ...
    do stuff here 
    ...
}

func doOtherStuff() {
    let funcOne = doStuff()

    funcOne // this calls doStuff()
}

以下是您可以使用常规变量进行的操作

是否有可能做这样的事情,因为可以用普通变量做到这一点?

var doStuffCallCounter: Int = 0

func doStuff() {
    ...
    do stuff here 
    ...
}

func doOtherStuff() {
    let funcOne = doStuff() {
        get {
            doStuffCallCounter += 1
        }
    }

    funcOne
}

1 个答案:

答案 0 :(得分:0)

通过做这样的事情是可能的。

var doStuffCallCounter: Int = 0

func doStuff() {
    ...
    do stuff here 
    ...
}

func doOtherStuff() {
    // declare funcOne as a computedProperty
    var funcOne: Void {
        get {
            doStuffCallCounter += 1
            return doStuff()
        }
    }

    funcOne // calls doStuff()
}