我知道可以这样定义接受闭包的方法:
A. 单一闭包作为输入参数
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")
})
有什么原因吗?