Quelle est la différence entre les fonctions/propriétés static et class en Swift ?
Bonjour à tous ! J'apprends Swift et je n'arrive pas à comprendre la différence entre les mots-clés `static` et `class` lorsqu'on déclare des fonctions ou des propriétés à l'intérieur d'une classe. Dans la documentation, il est écrit que les deux se réfèrent au type lui-même, et non à une instance, mais quelle est alors la différence ?
Par exemple, j'ai ce code :
```swift
class MyClass {
static var staticProperty = "Propriété statique"
class var classProperty: String {
return "Propriété de classe"
}
static func staticMethod() {
print("Méthode statique")
}
class func classMethod() {
print("Méthode de classe")
}
}
```
Je vois que `static` et `class` permettent d'appeler des méthodes sans créer d'instance de la classe : `MyClass.staticMethod()` et `MyClass.classMethod()`. Mais pourquoi existe-t-il alors deux mots-clés différents ? Dans quels cas faut-il utiliser `static` et dans quels cas `class` ?
Ce qui me perturbe particulièrement, c'est que dans les structures et les énumérations, on ne peut utiliser que `static`, alors que dans une classe...
No answers yet.
Connectez-vous pour laisser une réponse