是否可以在Swift中拥有String:Function
的地图?
像这样的东西(不起作用):
let map = [
"action": func() { print("action!") },
"error": func() {print("error!") }
]
我可以遵循哪些其他设计模式来实现这一目标?
答案 0 :(得分:6)
您可以通过将闭包放入词典
来完成此操作let map = [
"action": {() in print("action!") },
"error": {() in print("error!") }
]
或者通过创建字典外的函数并给它们命名,然后将这些名称传递到Dictionary
func action() {
print("action!")
}
func error() {
print("error!")
}
let map = [
"action": action,
"error": error
]
看起来你想要的是一个未命名的匿名函数(也就是闭包),这是第一个解决方案给你的。 func
关键字只能用于创建命名函数。