如何使用第一个函数作为第二个函数的闭包

时间:2018-12-09 19:04:04

标签: swift closures

我已经分配了使用第一个功能

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

作为第二个的结束

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

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

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

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