GO语言变量作用域-坑记录
1、main包的全局变量,其他文件无法使用。
解决办法:
- 全局变量放置在其他包中进行引用
2. 同名变量局部变量优先于全局变量,但是在使用 := 进行类型推导时会默认创建一个局部变量,该局部变量若与全局变量同名,则不会影响全局变量值。
解决办法:
- 尽量避免直接使用全局变量,使用函数封装。
- 少用 := 类型推导式
示例代码如下:
package main
import (
"fmt"
)
var AERROR int = 100
//
var global = 10000
func test3() {
//out 4
global := len("test")
fmt.Println(global)
}
func main() {
test3()
//out 10000
fmt.Println(global)
}