Avatar ·

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