Я пытаюсь выяснить, как объявить статическую переменную, локально привязанную к функции в Swift.
В C это может выглядеть примерно так:
int foo() {
static int timesCalled = 0;
++timesCalled;
return timesCalled;
}
В Objective-C он в основном тот же:
- (NSInteger)foo {
static NSInteger timesCalled = 0;
++timesCalled;
return timesCalled;
}
Но я не могу ничего подобного сделать в Свифте. Я попытался объявить переменную следующими способами:
static var timesCalledA = 0
var static timesCalledB = 0
var timesCalledC: static Int = 0
var timesCalledD: Int static = 0
Но все это приводит к ошибкам.
- Первый жалуется: "Статические свойства могут быть объявлены только для типа".
- Второй жалуется на "Ожидаемое объявление" (где
static
есть) и "Ожидаемый шаблон" (гдеtimesCalledB
) - Третий жалуется: "Последовательные операторы на строке должны быть разделены"; "(в пробеле между двоеточием и
static
) и" Ожидаемый тип "(гдеstatic
) - Четвертый жалуется: "Последовательные операторы на строке должны быть разделены"; "(в промежутке между
Int
иstatic
) и" Ожидаемое объявление "(под знаком равенства)