我试图弄清楚如何声明一个静态变量,其作用域仅限于Swift中的函数。
在C中,这可能看起来像这样:
int foo() {
static int timesCalled = 0;
++timesCalled;
return timesCalled;
}
在Objective-C中,基本上是相同的:
- (NSInteger)foo {
static NSInteger timesCalled = 0;
++timesCalled;
return timesCalled;
}
但是我似乎无法在Swift中做类似的事情。我尝试通过以下方式声明变量:
static var timesCalledA = 0
var static timesCalledB = 0
var timesCalledC: static Int = 0
var timesCalledD: Int static = 0
但是这些都会导致错误。
- 第一个抱怨“静态属性只能在类型上声明”。
- 第二个抱怨“期望的声明”(在哪里
static
)和“期望的模式”(在哪里timesCalledB
) - 第三条抱怨“一行上的连续语句必须用';'分隔(在冒号和之间的空格
static
)和” Expected Type”(在哪里static
) - 第四抱怨“上一个线必须被分开连续语句‘;’”(在之间的空间
Int
和static
)和“预期声明”(下等号)