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.