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.