Estou tentando descobrir como declarar uma variável estática com escopo apenas localmente para uma função em Swift.
Em C, isso pode ser parecido com isto:
int foo() {
static int timesCalled = 0;
++timesCalled;
return timesCalled;
}
Em Objective-C, é basicamente o mesmo:
- (NSInteger)foo {
static NSInteger timesCalled = 0;
++timesCalled;
return timesCalled;
}
Mas não consigo fazer nada parecido com Swift. Tentei declarar a variável das seguintes maneiras:
static var timesCalledA = 0
var static timesCalledB = 0
var timesCalledC: static Int = 0
var timesCalledD: Int static = 0
Mas tudo isso resulta em erros.
- O primeiro reclama "As propriedades estáticas só podem ser declaradas em um tipo".
- O segundo reclama "Declaração esperada" (onde
static
está) e "Padrão esperado" (ondetimesCalledB
está) - O terceiro reclama "As declarações consecutivas em uma linha devem ser separadas por ';'" (no espaço entre os dois pontos e
static
) e "Tipo esperado" (ondestatic
está) - O quarto reclama "Declarações consecutivas em uma linha devem ser separadas por ';'" (no espaço entre
Int
estatic
) e "Declaração esperada" (sob o sinal de igual)