在顶层,请使用标准的var关键字。不要指定类型,除非它与右侧的表达式不是同一类型。
Bad
// F()返回的是string类型,var 定义的变量也是string类型
var _s string = F()
func F() string { return "A" }
Good
//首先,希望变量 _s 的类型是 string
var _s = F()
// 既然F已经声明它返回一个string,因此我们没有必要再指定变量 _s 的类型了
func F() string { return "A" }
如果表达式的类型与所需类型不完全匹配,则需要指定类型。
//自定义错误类型
type myError struct{}
func (myError) Error() string { return "error" }
//F()返回的是 myError 类型
func F() myError { return myError{} }
var _e error = F()
// F 返回了myError类型的对象,但是我们想要error类型,不一致,所以要指定变量类型.