-2

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

现在一些卡片实例应该执行特殊操作。

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

但是怎么做呢?

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()
}

}
4

1 回答 1

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)
于 2018-11-13T18:56:13.457 回答