Avatar ·

Différence entre := et = en Go : déclaration courte vs affectation

Bonjour à tous ! Je viens de commencer à apprendre Go et je suis confus au sujet des opérateurs := et =. Apparemment, les deux sont utilisés pour travailler avec des variables, mais quelle est la différence ? Voici un exemple qui m'a troublé : ```go package main import "fmt" func main() { name := "Anna" // ça marche var age int = 25 // ça marche aussi age = 30 // et ça marche aussi // name = "Boris" // j'ai aussi essayé ça } ``` Quand j'écris name := "Anna" — tout va bien. Mais si je déclare d'abord une variable avec var, puis j'essaie d'utiliser := avec la même variable, le compilateur râle : "no new variables on left side of :=". Pourquoi ? J'ai aussi remarqué que := ne fonctionne qu'à l'intérieur des fonctions. Si j'écris ceci : ```go var version = "1.0" // globalement — ok // version := "1.0" // globalement — erreur ! ``` Pourquoi ? Et dans quels cas faut-il utiliser :=, et dans quels cas simplement = ? J'ai relu plusieurs tutoriels, mais je suis toujours perdu. Expliquez-moi, s'il vous plaît, simplement, avec des exemples, quand utiliser quoi.