在Go Web服务器示例中,此处为: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
,这和表面有什么关系吗?那有什么不同呢?
UPDATE:谢谢你指出最高层是不允许:=
的.你知道为什么规格里会有这种不一致吗?我看不出挡路内部的行为有什么不同的理由.