全局变量在函数外用var声明,首字母大写可跨包访问,初始化按顺序执行或通过init函数处理,并应注意并发安全与代码解耦。

在Go语言中,全局变量是指在函数外部声明的变量,可以在整个包或跨包范围内访问。正确声明和使用全局变量有助于组织代码结构,但需注意作用域和初始化时机。
全局变量必须在函数外部声明,通常位于包级别(即 package 声明之下、函数之外)。可以使用 var 关键字或带初始值的简写形式。
注意:在函数外不能使用 := 进行声明,只能用 var 或完整赋值语法。示例:
package main
import "fmt"
// 声明全局变量
var GlobalCounter int = 100
var GlobalName = "Alice" // 类型自动推断
var (
AppVersion = "1.0"
DebugMode = true
)
func main() {
fmt.Println(GlobalCounter) // 输出: 100
fmt.Println(GlobalName) // 输出: Alice
}若希望其他包也能访问该变量,变量名必须以大写字母开头(即导出),否则仅限当前包内使用。
立即学习“go语言免费学习笔记(深入)”;
例如,在 utils 包中定义:
// utils/config.go package utils var ServiceURL = "https://api.example.com" var apiKey = "secret" // 小写,不可被外部包引用
在 main 包中调用:
package main
import (
"fmt"
"yourproject/utils"
)
func main() {
fmt.Println(utils.ServiceURL) // 正确:大写可导出
// fmt.Println(utils.apiKey) // 错误:小写无法访问
}全局变量在程序启动时按声明顺序初始化,也可以通过 init() 函数进行复杂初始化操作。
示例:
var Mode string
func init() {
Mode = "production"
if isDebug() {
Mode = "debug"
}
}
func isDebug() bool {
return false
}init 函数在 main 函数之前执行,适合用于配置加载、连接初始化等场景。
以上就是Golang如何声明和使用全局变量的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号