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)
}