GO語言變數作用域-坑記錄

syouya.shiraki發表於2019-12-05

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

 

相關文章