J'essaie de comprendre comment déclarer une variable statique portée uniquement localement à une fonction dans Swift.
En C, cela pourrait ressembler à ceci:
int foo() {
static int timesCalled = 0;
++timesCalled;
return timesCalled;
}
En Objective-C, c'est fondamentalement la même chose:
- (NSInteger)foo {
static NSInteger timesCalled = 0;
++timesCalled;
return timesCalled;
}
Mais je n'arrive pas à faire quelque chose comme ça dans Swift. J'ai essayé de déclarer la variable de la manière suivante:
static var timesCalledA = 0
var static timesCalledB = 0
var timesCalledC: static Int = 0
var timesCalledD: Int static = 0
Mais tout cela entraîne des erreurs.
- Le premier se plaint "Les propriétés statiques ne peuvent être déclarées que sur un type".
- Le second se plaint "Déclaration attendue" (où
static
est) et "Modèle attendu" (oùtimesCalledB
est) - Le troisième se plaint "Les instructions consécutives sur une ligne doivent être séparées par ';'" (dans l'espace entre les deux points et
static
) et "Type attendu" (oùstatic
est) - Le quatrième se plaint "Les déclarations consécutives sur une ligne doivent être séparées par ';'" (dans l'espace entre
Int
etstatic
) et "Déclaration attendue" (sous le signe égal)