我试图弄明白如何在Swift中声明一个只在本地作用于函数的静态变量.
在C中,这可能看起来像这样:
int foo() {
static int timesCalled = 0;
++timesCalled;
return timesCalled;
}
在Objective-C中,基本相同:
- (NSInteger)foo {
static NSInteger timesCalled = 0;
++timesCalled;
return timesCalled;
}
但在Swift ,我似乎做不了这样的事.我try 过用以下方式声明变量:
static var timesCalledA = 0
var static timesCalledB = 0
var timesCalledC: static Int = 0
var timesCalledD: Int static = 0
但这些都会导致错误.
- 第一个抱怨"静态属性只能在类型上声明".
- 第二种抱怨"预期声明"(其中
static
是)和"预期模式"(其中timesCalledB
是) - 第三个抱怨"一行中的连续语句必须用";"(在冒号和
static
之间的空格中)和"预期类型"(其中static
是) - 第四个抱怨"一行中的连续语句必须用";"(在
Int
和static
之间)和"预期声明"(在等号下)隔开."