Я намагаюся зрозуміти, як оголосити статичну змінну, локалізовану лише локально, до функції в 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
) та "Очікувана декларація" (під знаком рівності)