当前位置: 首页 > 面试题库 >

如何创建函数数组?

龙飞
2023-03-14
问题内容

我正在尝试在Swift中构建Promises的基本实现,并且我需要能够向数组中添加函数,但是我不确定如何使它起作用。

class Promise {
    var pending = []

    func resolve() -> Void {
    }

    func then(success: (Void -> Void)) -> Promise {
        // how do I add success to pending array?
        return self
    }
}

let p = Promise()
p.then({println("finished")})

我发现,append当我尝试执行以下操作时,Swift Playground不会建议您:

self.pending.append(success)

这很有道理-Swift无法推断出-的类型,self.pending但这就是我的问题所在。我不确定如何预定义(Void -> Void)函数数组。

是否可以在Swift中创建函数数组?我想是这样,职能是一等公民。


问题答案:

绝对有可能,只需将数组初始化为:

var pending = Array<(Void -> Void)>()

甚至是鸽友

var pending = Array<()->()>()

要么

var pending: [(Void->Void)] = []

要么

var pending: [(()->())] = []

要么

var penguins: [<(") <(")] = [] // kidding


 类似资料:
  • 问题内容: 是否有可能创建python函数的真实副本?最明显的选择是http://docs.python.org/2/library/copy.html,但我在这里看到: 它通过不变地返回原始对象来“复制”函数和类(浅层和深层)。 我需要一个真实的副本,因为我可能会更改函数的某些属性。 更新: 我知道评论中提到的所有可能性。我的用例基于元编程,其中我根据一些声明性规范构造了类。完整的细节对于SO来

  • 我试图使用Java8实现管道设计模式,下面的文章供我参考: https://stackoverflow.com/a/58713936/4770397 但问题是,我不知道如何将声明为抽象方法。

  • 进入工作空间,点击“创建新函数”,输入函数名称及相关配置信息。 默认运行环境为Python2,内存限制为128M,请注意修改。超时时间请填写1-300之间的任意数值,单位为s。环境变量以键值对形式填写,不填写则默认没有设置环境变量。 默认代码输入方式为在线编辑,示例代码如下: def main(event): return "Hello, world!\n" 创建成功后可以进入函数详情页

  • 问题内容: 我有一个带几个参数的Python函数。在某些情况下,可以忽略其中一些参数。 这些参数通过是字符串,每个都有不同的含义。我可以选择要以任何组合形式传递的可选参数,这一点很重要。例如,或,,或,或所有它们(这些是我的选择)。 如果我可以重载该函数,那就太好了-但我读到Python不支持重载。我试图在列表中插入一些必需的int参数-并收到参数不匹配错误。 现在,我正在发送空字符串来代替前几个

  • 问题内容: 查看此代码: 正如您在控制台中看到的那样,“动画”功能是异步的,它“分叉”了事件处理程序块代码的流程。事实上 : 遵循块代码的流程! 如果我希望以此行为创建自己的代码,该如何使用javascript/jquery进行创建?我认为这是不使用的策略 问题答案: 您不能创建真正的自定义异步函数。您最终将不得不利用本机提供的技术,例如: 一些HTML5 API,例如文件API,Web数据库AP

  • 我在nodeJS中有一个主要的谷歌云功能。在这个函数中,我希望通过编程在同一个项目中创建另一个云函数。这个新的云函数的代码可以存储在谷歌云存储的zip文件中。我试着跟着这里的导游走:https://cloud.google.com/functions/docs/reference/rest/v1/projects.locations.functions/create 我能够在测试模拟器中运行查询,