Quelle est la différence entre les opérateurs := et = en Go ? Expliquez avec des exemples
Bonjour ! Je viens de commencer à apprendre Go et je n'arrive pas à comprendre la différence entre := et =. Les deux opérateurs semblent assigner quelque chose, mais le compilateur se plaint si je les confonds.
Voici un exemple de code qui ne fonctionne pas chez moi :
```go
package main
import "fmt"
func main() {
var name string
name = "Alice"
fmt.Println(name)
// Et ça, pour une raison quelconque, ne compile pas :
var age int
age := 25 // erreur : no new variables on left side of :=
fmt.Println(age)
}
```
J'ai lu la documentation, mais c'est écrit de manière compliquée. Expliquez en termes simples : quand utiliser :=, et quand utiliser = ? Et pourquoi dans un cas je peux écrire `x := 10`, et dans l'autre `var x int = 10` ?
Ce qui me trouble aussi, c'est que dans certains exemples, je vois := utilisé à l'intérieur des fonctions, mais pas au niveau du package. Est-ce une limitation du langage ?
Je serais reconnaissant pour une explication détaillée avec des exemples sur quand appliquer chaque opérateur.
<<>>
Réponse courte
:= est une forme courte de déclaration