go 全局切片声明初始化
在大多数情况下,Go开发人员非常擅长使用常量进行全局配置,而不是全局变量。 但是,当我们需要全局常量切片或映射时,就会出现问题。 go编译器不允许将这些更复杂的类型设置为常量。 实现这一点后,许多开发人员决定使用危险的全局变量。 在本文中,我们将探索一个更好的选择。
全局和常量简介
package foo// this is a global constant
const safeRateLimit = 10
// this is a global variable
var dangerousRateLimit = 10
设置配置全局变量(应为只读)时,没有理由使用全局变量。 通过使用变量而不是常量,您可以:
- 当您或其他人无意中改变了价值时,便会发现潜在的错误
- 混淆那些认为价值应该改变的未来开发人员
幸运的是,大多数人已经对全局变量有所了解,将全局变量切换为全局常量是一项相当简单的任务。