Avatar ·

Was ist der Unterschied zwischen den Operatoren := und = in Go? Erklären Sie mit Beispielen

Hallo! Ich habe gerade angefangen, Go zu lernen, und verstehe den Unterschied zwischen := und = nicht. Beide Operatoren scheinen etwas zuzuweisen, aber der Compiler meckert, wenn ich sie verwechsle. Hier ist ein Beispielcode, der bei mir nicht funktioniert: ```go package main import "fmt" func main() { var name string name = "Alice" fmt.Println(name) // Und das hier kompiliert aus irgendeinem Grund nicht: var age int age := 25 // Fehler: no new variables on left side of := fmt.Println(age) } ``` Ich habe die Dokumentation gelesen, aber sie ist kompliziert geschrieben. Erklären Sie in einfachen Worten: Wann verwendet man := und wann =? Und warum kann ich in einem Fall `x := 10` schreiben, aber im anderen `var x int = 10`? Außerdem verwirrt mich, dass ich in manchen Beispielen sehe, wie := innerhalb von Funktionen verwendet wird, aber nicht auf Paketebene. Ist das eine Spracheinschränkung? Ich wäre dankbar für eine ausführliche Erklärung mit Beispielen, wann welcher Operator anzuwenden ist. <<>>

Kurze Antwort

:= ist die Kurzform der Deklaration und Initialisierung einer neuen Variable. = ist der Zuweisungsoperator für bereits deklarierte Variablen. := kann nur innerhalb von Funktionen verwendet werden, nicht auf Paketebene. var x int = 10 ist die ausführliche Form, die auch außerhalb von Funktionen erlaubt ist.