我知道标题听起来很复杂,但问题并非如此。
我有这个Swift代码:
class MyClass {
let helloWorld: (check: Bool)->()
init(helloWorld: (check: Bool)->()) {
self.helloWorld = helloWorld
}
}
let instanceOfMyClass = MyClass(helloWorld: (check: Bool) -> {
})
这给了我一个错误。最后一条指令的正确语法是什么?
谢谢!
答案 0 :(得分:4)
您可以使用:
let instanceOfMyClass = MyClass(helloWorld: { (check) in println(check) } )
但是如果闭包是最后一个参数,你可以使用 trailing closure 语法,其中闭包是在函数外写的(在你的情况下是init)括号 - 这更容易阅读:
let instance = MyClass() { (check) in
println(check)
}
还有其他快捷方式来定义闭包,例如:
let instance2 = MyClass() { println($0) }
但我建议你阅读官方快速书中的全部closure chapter。
注意:在上面的代码中,将println(...)
替换为您的实际处理