2 5 Go語言變數的作用域

2021-10-05 13:36:57 字數 1822 閱讀 9922

乙個變數(常量、型別或函式)在程式中都有一定的作用範圍,稱之為作用域。

了解變數的作用域對我們學習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 全域性變數...