微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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)

解决方法

没有.

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

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

但是,它可能有点令人困惑.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐