Swift 我的收尾有什么问题?
无法将表达式的类型“()->()->ST0”转换为类型“()->”() ->ST0'Swift 我的收尾有什么问题?,swift,closures,Swift,Closures,无法将表达式的类型“()->()->ST0”转换为类型“()->”() ->ST0' 上盖有什么问题。如果我删除for循环,它会起作用。不确定该语法为什么不起作用(我也认为它应该起作用),但这是完整语法的简化情况 let asdf = { println("df") for i in 1...10 { } } 这确实有效。因为它不是在一个上下文中期望一个闭包,所以它没有将它解释为一个闭包 通过将asdf声明为闭包,它现在需要
上盖有什么问题。如果我删除for循环,它会起作用。不确定该语法为什么不起作用(我也认为它应该起作用),但这是完整语法的简化情况
let asdf = {
println("df")
for i in 1...10 {
}
}
这确实有效。因为它不是在一个上下文中期望一个闭包,所以它没有将它解释为一个闭包 通过将asdf声明为闭包,它现在需要一个闭包,因此接受缩写语法:
let asdf = { () -> () in
println("df")
for i in 1...10 {
println(i)
}
}
asdf()
或者,您可以使用Grimxn指出的完整语法
let asdf :()->() = {
println("df")
for i in 1...10 {
}
}