Im Go Web-Server Beispiel hier: http://golang.org/doc/effective_go.html#web_servervar vs: = in Go
Die folgende Codezeile funktioniert
var addr = flag.String("addr", ":1718", "http service address")
aber es
addr := flag.String("addr", ":1718", "http service address")
Wechsel ist ein Übersetzungsfehler . Warum? Hat es etwas damit zu tun, dass der Rückgabetyp der Funktion *string
statt string
ist? Welchen Unterschied macht das?
UPDATE: Vielen Dank für den Hinweis auf, dass :=
nicht auf der obersten Ebene erlaubt. Irgendeine Idee, warum diese Inkonsequenz in der Spezifikation ist? Ich sehe keinen Grund dafür, dass das Verhalten innerhalb eines Blocks anders ist.
es war eigentlich nur syntaktischer Zucker für Deklaration + Zuweisung in früheren Versionen. – thwd