swift 5 中的可选闭包

Optional closures in swift 5

我一直无法弄清楚如何为 swift 5 编写一个可选的闭包。我发现了很多已经有几年历史的解释,其中 none 似乎有效现在。 我试过:

func test(completion: (() -> Void)?){
    completion()
}

以及它的其他变体。非常感谢任何帮助。

我假设当你说 "how to write an optional closure" 时你的意思是 "how to call an optional closure",因为你写的闭包参数很好,但你没有正确调用它。

要调用可选闭包,您需要先将其解包。或者:

completion?()

或:

if let unwrappedCompletion = completion {
    unwrappedCompletion()
}