Estoy tratando de averiguar cómo declarar una variable estática con alcance solo localmente a una función en Swift.
En C, esto podría verse así:
int foo() {
static int timesCalled = 0;
++timesCalled;
return timesCalled;
}
En Objective-C, es básicamente lo mismo:
- (NSInteger)foo {
static NSInteger timesCalled = 0;
++timesCalled;
return timesCalled;
}
Pero parece que no puedo hacer nada como esto en Swift. Intenté declarar la variable de las siguientes maneras:
static var timesCalledA = 0
var static timesCalledB = 0
var timesCalledC: static Int = 0
var timesCalledD: Int static = 0
Pero todos estos resultan en errores.
- El primero se queja "Las propiedades estáticas solo se pueden declarar en un tipo".
- El segundo se queja "Declaración esperada" (donde
static
está) y "Patrón esperado" (dondetimesCalledB
está) - El tercero se queja "Las declaraciones consecutivas en una línea deben estar separadas por ';'" (en el espacio entre los dos puntos y
static
) y "Tipo esperado" (dondestatic
está) - El cuarto se queja "Las declaraciones consecutivas en una línea deben estar separadas por ';'" (en el espacio entre
Int
ystatic
) y "Declaración esperada" (bajo el signo igual)