给出以下示例Swift代码:
var a = 10;
func foo() -> Int {
var a = 20;
return a;
}
函数foo如何获取对值为10的全局变量a而不是对值为20的局部变量a的访问?
请注意,a和foo都没有在类内声明,而是在通用模块中声明。我正在寻找一种方法来告诉Swift访问全局定义的var而不是本地定义的var。
我用Xcode创建了一个项目,一个控制台应用程序,目标在这里是一个模块。因此,我为项目命名,test
并且目标具有相同的名称,因此在项目中,模块本身也具有名称test
。任何全局定义都将隐式调用test.
。就像全局Swift函数是对的隐式调用Swift.
一样Swift.print("...")
。
var a = 10;
func foo() -> Int {
let a = 20;
Swift.print(test.a) // same as print(test.a)
return a;
}
test.foo() // same as foo()
输出为:
10
因此,您必须在变量之前添加模块名称,以获取全局变量而不是覆盖全局变量的局部变量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句