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ù
staticest) et "Modèle attendu" (oùtimesCalledBest) - 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ùstaticest) - Le quatrième se plaint "Les déclarations consécutives sur une ligne doivent être séparées par ';'" (dans l'espace entre
Intetstatic) et "Déclaration attendue" (sous le signe égal)