本文介绍了如何快速进行可选的关闭?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在Swift中声明一个参数,该参数需要一个可选的闭包.我声明的函数看起来像这样:

I'm trying to declare an argument in Swift that takes an optional closure. The function I have declared looks like this:

class Promise {

 func then(onFulfilled: ()->(), onReject: ()->()?){
    if let callableRjector = onReject {
      // do stuff!
    }
 }

}

但是Swift抱怨说,"if let"声明时,条件中的绑定值必须是Optional类型".

But Swift complains that "Bound value in a conditional must be an Optional type" where the "if let" is declared.

推荐答案

您应该将可选的闭包括在括号中.这样可以正确确定?运算符的作用域.

You should enclose the optional closure in parentheses. This will properly scope the ? operator.

func then(onFulfilled: ()->(), onReject: (()->())?){
    if let callableRjector = onReject {
      // do stuff!
    }
 }

这篇关于如何快速进行可选的关闭?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-14 18:21