var vs: = in Go

В примере веб-сервера Go здесь:http://golang.org/doc/effective_go.html#web_server

Следующая строка кода работает

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

но меняя его на

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

это ошибка компиляции. Зачем? Имеет ли это какое-либо отношение к лицу, которое возвращает тип функции*string вместоstring? Что это меняет?

ОБНОВИТЬ: Спасибо за указание на это:= не допускается на верхнем уровне. Любая идея, почему это несоответствие в спецификации? Я не вижу причин, по которым поведение внутри блока может быть другим.

Ответы на вопрос(3)

Ваш ответ на вопрос