已经发布了一个已接受答案的问题,但截至今天它还没有运作。它在Playground Expected',' separator
Adding Swift Closures as values to Swift dictionary
class CommandResolver {
private var commandDict: [String: () -> Void]
init() {
commandDict = [String: () -> Void]()
setUpCommandDict()
}
func setUpCommandDict() {
commandDict["OpenAssessment_1"] = {
println("I am inside closure")
}
}
}
答案 0 :(得分:5)
这很可能是编译器中的一个错误。但是,创建空字典时无需重新指定类型。相反,您可以使用空字典文字:
init() {
self.commandDict = [:]
self.setUpCommandDict()
}
字典的类型是从commandDict
声明中推断出来的。
我过去使用的另一个解决方案是使用typealias
:
class CommandResolver {
typealias CallbackType = () -> Void
private var commandDict: [String: CallbackType]
init() {
self.commandDict = [String: CallbackType]()
self.setUpCommandDict()
}
func setUpCommandDict() {
self.commandDict["OpenAssessment_1"] = {
println("I am inside closure")
}
}
}