let asdf = {
println("df")
for i in 1...10 {
}
}不能将表达式的类型'() -> () -> ST0‘转换为'() -> () -> ST0’
上闭锁有什么问题。如果我删除for循环,它就会工作。
发布于 2014-07-08 12:10:34
不知道为什么那个语法不起作用(我也认为它应该起作用),但这是一个完整语法的简化情况
let asdf = { () -> () in
println("df")
for i in 1...10 {
println(i)
}
}
asdf()这是有用的。
发布于 2014-07-08 17:04:32
因为它不是在一个上下文中期待一个结束,它没有把它解释为一个。
通过将asdf声明为一个闭包,它现在需要一个闭包,因此接受简化的语法:
let asdf :()->() = {
println("df")
for i in 1...10 {
}
}或者,正如Grimxn所指出的,您可以使用完整的语法。
https://stackoverflow.com/questions/24631177
复制相似问题