var vs: = em Go

No exemplo do servidor web Go aqui:http://golang.org/doc/effective_go.html#web_server

A seguinte linha de código funciona

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

mas mudando para

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

é um erro de compilação. Por quê? Tem alguma coisa a ver com o rosto de que o tipo de retorno da função é*string ao invés destring? Que diferença isso faz?

ATUALIZAR: Obrigado por apontar que:= não é permitido no nível superior. Alguma idéia de por que essa inconsistência está na especificação? Não vejo nenhuma razão para o comportamento ser diferente dentro de um bloco.

questionAnswers(3)

yourAnswerToTheQuestion