如果运行此代码,变量f似乎会影响函数f。无论如何都要达到函数f?
func f (a:Int)->Int{
return a + 43
}
var f = {(a:Int) in a + 42}
var z = f(1)
println(z)
答案 0 :(得分:1)
没有。
在Swift中,函数声明只是你用闭包+变量做的事情的捷径。也就是说,函数名称本质上是常量,应该始终如此查看(您甚至可以传递函数名称,不带括号作为参考)。
您正在做的是将名称f重新声明为变量闭包。似乎Swift有一个编译器问题没有抱怨这个。但是,这个问题永远不会出现在好的代码中,所以它不是一个真正的问题。
但是,这可能有点令人困惑。