通过告诉要调用的函数来快速初始化类

时间:2018-11-13 18:50:09

标签: swift function class init

我有一张包含许多变量的类卡,用于棋盘游戏中。

现在,某些卡片实例应执行特殊操作。

我的计划是创建不同的函数(在类内或类外),并告诉类在init使用哪个函数。

但是该怎么做?

class classCards {
var xy: Int
var whichFunction:  //what should i declare


init(number: Int, function: //what should i declare) {
    self.xy = number
    self.whichFunction = function
}

func letsDoIt() {
    whichFunction()
}

}

1 个答案:

答案 0 :(得分:1)

为此,您可以使用typealias来传递函数closure作为参数,请注意以下代码。

class classCards {
    typealias myFunction = () -> Void
    var xy : Int
    var whichFunction: myFunction


    init(number: Int, function: @escaping myFunction) {
        self.xy = number
        self.whichFunction = function
        letsDoIt()
    }

    func letsDoIt() {
        whichFunction()
    }
}
//Useage
func foo(){
    print("foo")
}
classCards(number: 10, function: foo)