class Foo {
let fooValue = 1
}
print(Foo.fooValue) // not work
class Bar {
static let barValue = 1
}
print(Bar.barValue) // work; print "1"
Pourquoi? Je m'attendais à ce que l'exemple Foo
fonctionne, car la valeur de fooValue
est la constante, la valeur et l'adresse mémoire connues au moment de la compilation. Mais j'ai besoin d'utiliser le mot-clé static
pour travailler.Quelle est la différence entre "let" et "static let"?
Être un 'let' signifie simplement que c'est une constante - cela n'a rien à voir avec le fait que la propriété soit accessible depuis l'instance ou la portée statique. Voir aussi [Quelle est l'utilisation du mot clé "static" si "let" mot-clé utilisé pour définir des constantes/immutables dans swift?] (Http://stackoverflow.com/q/34574876/2976878) – Hamish