var vs: = in Go

Im Beispiel für den Go-Webserver hier:http://golang.org/doc/effective_go.html#web_server

Die folgende Codezeile funktioniert

var addr = flag.String("addr", ":1718", "http service address")

aber es zu ändern

addr := flag.String("addr", ":1718", "http service address")

ist ein Kompilierungsfehler. Warum? Hat es irgendetwas mit der Fläche zu tun, die der Rückgabetyp der Funktion ist?*string Anstatt vonstring? Welchen Unterschied macht das?

AKTUALISIEREN: Danke für den Hinweis:= ist auf der obersten Ebene nicht erlaubt. Irgendeine Idee, warum diese Inkonsistenz in der Spezifikation ist? Ich sehe keinen Grund dafür, dass das Verhalten innerhalb eines Blocks anders ist.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage