Swift中函数和变量的命名空间

时间:2014-09-04 21:08:13

标签: swift

如果运行此代码,变量f似乎会影响函数f。无论如何都要达到函数f?

func f (a:Int)->Int{
   return a + 43
}

var f = {(a:Int) in a + 42}

var z = f(1)
println(z)

1 个答案:

答案 0 :(得分:1)

没有。

在Swift中,函数声明只是你用闭包+变量做的事情的捷径。也就是说,函数名称本质上是常量,应该始终如此查看(您甚至可以传递函数名称,不带括号作为参考)。

您正在做的是将名称f重新声明为变量闭包。似乎Swift有一个编译器问题没有抱怨这个。但是,这个问题永远不会出现在好的代码中,所以它不是一个真正的问题。

但是,这可能有点令人困惑。