gpt4 book ai didi

swift - 是否可以快速使用多个尾随闭包?

转载 作者:可可西里 更新时间:2023-11-01 00:38:25 29 4
gpt4 key购买 nike

我知道可以像这样定义接受闭包的方法:

一个。单闭包作为输入参数

func testOfClosures (flag: Int, closure1: () -> ())
{
closure1()
}

B.多个闭包作为输入参数

func testOfClosures (flag: Int, closure1: () -> (), closure2: () -> (), closure3: () ->  ())
{
switch flag
{
case 1:
closure1()
case 2:
closure2()
default:
closure3()
}
}

有趣的是,在第一种情况下我们可以这样调用它:

testOfClosures(1){
println("print closure 1")
}

但在第二种情况下,我们不能这样调用它:

testOfClosures(1,{
println("print closure 1")
},
{
println("print closure 2")
})
{
println("print closure 3")
}

我们必须像这样调用它:

testOfClosures(1,{
println("print closure 1")
},
{
println("print closure 2")
},
{
println("print closure 3")
})

有什么原因吗?

最佳答案

是的,您可以从 Swift 5.3 开始这样做。

请看这个例子

// Multiple trailing closure arguments
UIView.animate(withDuration: 0.3) {
self.view.alpha = 0
} completion: { _ in
self.view.removeFromSuperview()
}

来自此 Proposal 的信用和更多信息

关于swift - 是否可以快速使用多个尾随闭包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24109060/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com