• 全局变量声明

    全局变量声明

    在顶层使用标准 var 关键字声明变量时,不要显式指定类型,除非它与表达式的返回类型不同。

    BadGood
    1. var _s string = F()
    2. func F() string { return "A" }
    1. var _s = F()
    2. // F 已经明确声明返回一个字符串类型,我们没有必要显式指定 _s 的类型
    3. func F() string { return "A" }

    如果表达式的返回类型与所需的类型不完全匹配,请显示指定类型。

    1. type myError struct{}
    2. func (myError) Error() string { return "error" }
    3. func F() myError { return myError{} }
    4. var _e error = F()
    5. // F 返回一个 myError 类型的实例,但是我们要 error 类型