在未导出的顶层变量和常量前面加上_,以便在使用它们时清楚地表明它们是全局的标识符。
异常:未导出的错误值,应该以err作为前缀。
基本原理:顶层变量和常量有一个包的作用域。使用通用名称很容易在不同的文件中意外地使用错误的值。
Bad
// foo.go
//这两个常量拥有包级作用域
const (
defaultPort = 8080
defaultUser = "user"
)
// bar.go
func Bar() {
//这个文件中,把默认端口给改掉了
defaultPort := 9090
...
fmt.Println("Default port", defaultPort)
// 如果Bar()的第一行被删除,我们不会看到编译错误。
}
Good
// foo.go
const (
_defaultPort = 8080
_defaultUser = "user"
)
本文介绍了在Go语言中如何通过在未导出的顶层变量和常量前面加上下划线来明确标识其全局作用域,以此避免不同文件间可能产生的命名冲突。同时,对于未导出的错误值建议采用err作为前缀。

被折叠的 条评论
为什么被折叠?



