В веб-сервере, например Go здесь: http://golang.org/doc/effective_go.html#web_serverвар против: = в Go
Следующая строка кода работает
var addr = flag.String("addr", ":1718", "http service address")
но меняющегося его
addr := flag.String("addr", ":1718", "http service address")
ошибка компиляции , Зачем? Имеет ли это какое-либо отношение к лицу, что возвращаемый тип функции равен *string
вместо string
? Какая разница?
ОБНОВЛЕНИЕ: Спасибо, что указали, что :=
не разрешен на верхнем уровне. Любая идея, почему эта несогласованность находится в спецификации? Я не вижу причин, чтобы поведение отличалось внутри блока.
Это был просто синтаксический сахар для объявления + присвоения в предыдущих версиях. – thwd