乙個變數(常量、型別或函式)在程式中都有一定的作用範圍,稱之為作用域。
了解變數的作用域對我們學習go語言來說是比較重要的,因為go語言會在編譯時檢查每個變數是否使用過,一旦出現未使用的變數,就會報編譯錯誤。如果不能理解變數的作用域,就有可能會帶來一些不明所以的編譯錯誤。
根據變數定義位置的不同,可以分為以下三個型別:
下面就來分別介紹一下。
區域性變數
在函式體內宣告的變數稱之為區域性變數,它們的作用域只在函式體內,函式的引數和返回值變數都屬於區域性變數。
區域性變數不是一直存在的,它只在定義它的函式被呼叫後存在,函式呼叫結束後這個區域性變數就會被銷毀。
【示例】下面的 main() 函式中使用到了區域性變數 a、b、c。
package main
import
("fmt"
)func
main()
執行結果如下所示:
a =
3, b =
4, c =
7
全域性變數
在函式體外宣告的變數稱之為全域性變數,全域性變數只需要在乙個原始檔中定義,就可以在所有原始檔中使用,當然,不包含這個全域性變數的原始檔需要使用「import」關鍵字引入全域性變數所在的原始檔之後才能使用這個全域性變數。
全域性變數宣告必須以 var 關鍵字開頭,如果想要在外部包中使用全域性變數的首字母必須大寫。
【示例】下面**中,第 6 行定義了全域性變數 c。
package main
import
"fmt"
//宣告全域性變數
var c int
func
main()
執行結果如下所示:
a =
3, b =
4, c =
7
go語言程式中全域性變數與區域性變數名稱可以相同,但是函式體內的區域性變數會被優先考慮。
package main
import
"fmt"
//宣告全域性變數
var a float32
=3.14
func
main()
執行結果如下所示:
a =
3
形式引數
在定義函式時函式名後面括號中的變數叫做形式引數(簡稱形參)。形式引數只在函式呼叫時才會生效,函式呼叫結束後就會被銷毀,在函式未被呼叫時,函式的形參並不占用實際的儲存單元,也沒有實際值。
形式引數會作為函式的區域性變數來使用。
【示例】下面**中第 21 行定義了形式引數 a 和 b。
package main
import
("fmt"
)//全域性變數 a
var a int=13
func
main()
func
sum(a, b int
)int
執行結果如下所示:
main
() 函式中 a =
3main
() 函式中 b =
4sum
() 函式中 a =
3sum
() 函式中 b =
4main
() 函式中 c =
7
Go語言10 變數作用域
作用域為已宣告識別符號所表示的常量 型別 變數 函式或包在源 中的作用範圍。go 語言中變數可以在三個地方宣告 接下來讓我們具體了解區域性變數 全域性變數和形式引數。在函式體內宣告的變數稱之為區域性變數,它們的作用域只在函式體內,引數和返回值變數也是區域性變數。以下例項中 main 函式使用了區域性...
2 5 Go 算術運算與變數使用技巧
變數作用域 簡單來說,go的變數以塊為範圍 乙個if else的塊,就可以包含乙個變數的生命週期。變數的宣告,要在使用之前。package main import fmt func main a為2的變數作用範圍在塊結束的時候,也隨之結束,所以下面的a 1的結束為true if a 1 else 注...
go變數作用域
變數 作用域 表示變數的 可訪問性 根據作用域的大小一般分為全域性變數與區域性變數 宣告在函式內部的變數稱為區域性變數,宣告在函式外部的變是全域性變數 還有宣告在 塊中的變數也稱為區域性變數 大括號中的 稱為語句塊,直接大括號或者for迴圈或者if語句塊等 func main a 100 全域性變數...