我的关闭有什么问题?

时间:2014-07-08 11:53:48

标签: swift closures

    let asdf = {

        println("df")

        for i in 1...10 {

        }
    }
  

无法转换表达式'() - > () - > ST0'输入'() - > ()    - > ST0'

上部闭合有什么问题。如果我删除for循环它将起作用。

2 个答案:

答案 0 :(得分:0)

不确定为什么语法不起作用(我也认为应该这样做),但它是完整语法的简化案例

let asdf = { () -> () in
            println("df")

            for i in 1...10 {
                println(i)
            }
        }

asdf()

确实有效。

答案 1 :(得分:0)

由于预期关闭不在上下文中,因此不会将其解释为一个。

通过声明asdf是一个闭包,它现在需要一个闭包,所以接受缩写语法:

let asdf :()->() = {

    println("df")

    for i in 1...10 {
    }
}

或者,您可以使用Grimxn指出的完整语法。