【问题标题】:How can I use the first function as a closure to the second function如何使用第一个函数作为第二个函数的闭包
【发布时间】:2019-05-10 18:19:46
【问题描述】:

我有一个使用第一个功能的任务

func printValue(boolValue: Bool) {
print(boolValue)
}

作为第二个的结束

func calculate(completion: (Bool) -> Void) {
completion(printValue(boolValue: 2>1))
} 

您能给我一些建议吗?据我了解,如果我们使用第一个函数作为第二个函数的参数,它已经算作一个闭包。在那种情况下,我应该在第一个函数中返回 Void 值,对吧?

【问题讨论】:

  • 不清楚问题的含义。你的意思是calculate(completion:printValue)

标签: swift closures


【解决方案1】:

尝试以下方法:

func printValue(boolValue: Bool) {
    print(boolValue)
}

func calculate(completion: (Bool) -> Void) {
    completion(2 > 1)
}

calculate(completion: printValue)

在您的代码中,printValue(boolValue: 2 > 1) 不是一个函数,它是printValue(boolValue:) 在输入条件2 > 1 时的返回值。而calculate(completion:) 将具有签名(Bool) -> Void)另一个函数作为参数。在calculate(completion:) 内部,该函数称为completion

【讨论】:

    猜你喜欢
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    • 2017-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多