我有一张包含许多变量的类卡,用于棋盘游戏中。
现在,某些卡片实例应执行特殊操作。
我的计划是创建不同的函数(在类内或类外),并告诉类在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()
}
}
答案 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)