鉴于此示例Swift代码:
var a = 10;
func foo() -> Int {
var a = 20;
return a;
}
Run Code Online (Sandbox Code Playgroud)
函数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()
Run Code Online (Sandbox Code Playgroud)
输出为:
10
因此,您必须在变量之前添加模块名称,以获取全局变量而不是局部变量。
| 归档时间: |
|
| 查看次数: |
997 次 |
| 最近记录: |