非导出的全局变量或者常量以 _ 开头

非导出的全局变量和常量前面加上前缀 _,以明确表示它们是全局符号。

例外:未导出的错误类型变量,应以 err 开头。

解释:顶级(全局)变量和常量具有包范围作用域。使用通用名称命名,可能在其他文件中不经意间地使用一个错误值。

BadGood
  1. // foo.go
  2. const (
  3. defaultPort = 8080
  4. defaultUser = "user"
  5. )
  6. // bar.go
  7. func Bar() {
  8. defaultPort := 9090
  9. fmt.Println("Default port", defaultPort)
  10. // We will not see a compile error if the first line of
  11. // Bar() is deleted.
  12. }
  1. // foo.go
  2. const (
  3. _defaultPort = 8080
  4. _defaultUser = "user"
  5. )