我试图在Swift中声明一个需要可选闭包的参数。我声明的函数如下所示:
class Promise { func then(onFulfilled: ()->(), onReject: ()->()?){ if let callableRjector = onReject { // do stuff! } } }
但是Swift抱怨说,“条件”中的绑定值必须是一个可选类型,其中声明了“ if let”。
您应该将可选的闭包括在括号中。这将适当地限制?操作员的范围。
?
func then(onFulfilled: ()->(), onReject: (()->())?){ if let callableRjector = onReject { // do stuff! } }