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.