Bonjour à tous,
@maxime, juste une curiosité syntaxique non pas de toi, mais de swift.
Pour une constante, on écrit let toto = 2, et si on veut une variable alors on écrit var toto; int = 2
Du coup, je ne vois pas bien pourquoi lorsque l’on instancie un objet, on écrit let player1 = Player() ,
plutôt que var player1 = Player()
Une idée ? 
Bonne journée à tous,
Sylvain
Parce qu’un objet est généralement constant. La plupart du temps, on ne le modifie pas après sa création. On agit sur ses propriétés, pas sur l’objet lui-même.
@Draken, comme dirait l’autre, c’est pas faux !
Il faut effectivement le considérer comme une enveloppe, elle même constituée de variables (propriétés).
Merci pour ta réponse
En effet c’est vrai pour les objets/classes, par contre pour les structures (abordées dans le cours swift 3 mais pas encore dans le cours swift 4) alors si l’instance de structure est dans un let, toutes ses propriétés sont automatiquement constantes
ah mince, du coup il y a un quand même un binz.
Oui enfin, c’est rien comme problème. Tu met tout en let, le compilateur t’avertiras s’il y a besoin d’un var. Il te proposeras même de faire la modification du code lui-même !
Mais je n’ai jamais dit que c’était un problème, j’ai parlé de curiosité syntaxique.
Ce n’est pas une curiosité syntaxique. Une structure est un assemblage de variables, pas une classe. C’est logique qu’elle utilise la même syntaxe que les variables ordinaires.
Ben tu vois, je ne suis pas d’accord. une structure n’est pas un simple assemblage de variables, sinon on ne pourrait pas y définir des méthod, etc…
C’est au contraire plus proche d’une classe que d’une suite de variable. La principale différence étant d’un côté le passage par reference et l’autre par valeur. D’ailleurs la doc d’apple est super bien pour faire le choix d’une classe ou d’une structure, ou bien encore enumeration.
Bref, ce n’est pas important pour moi de juger si c’est curieux ou pas, et si je me trompe de vocabulaire, j’en suis désolé.
Comparing Classes and Structures
Classes and structures in Swift have many things in common. Both can:
• Define properties to store values
• Define methods to provide functionality
• Define subscripts to provide access to their values using subscript syntax
• Define initializers to set up their initial state
• Be extended to expand their functionality beyond a default implementation
• Conform to protocols to provide standard functionality of a certain kind
source apple :
https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/ClassesAndStructures.html