Go中變數作用域的小坑

2021-09-09 02:46:28 字數 559 閱讀 7579

直接上一例項:

package main

import

"fmt

"func main()

fmt.println(

"迴圈結束.....")

fmt.println(a)

//這裡輸出 0 why 不是 6

}

注意:在 for 迴圈的 initialize(a:=0) 中,此時 initialize 中的 a 與外層的 a 不是同乙個變數,initialize 中的 a 為 for 迴圈中的區域性變數,因此在執行完 for 迴圈後,輸出 a 的值仍然為 0。要得到6,修改如下:

package main

import

"fmt

"func main()

fmt.println(

"迴圈結束.....")

fmt.println(a)

//這裡輸出是 6

}

原因就在於變數a的作用域的理解。包括if 中宣告的變數等。都屬於塊區域有效。避免採坑額,特此記錄下。

go變數作用域

變數 作用域 表示變數的 可訪問性 根據作用域的大小一般分為全域性變數與區域性變數 宣告在函式內部的變數稱為區域性變數,宣告在函式外部的變是全域性變數 還有宣告在 塊中的變數也稱為區域性變數 大括號中的 稱為語句塊,直接大括號或者for迴圈或者if語句塊等 func main a 100 全域性變數...

Go語言10 變數作用域

作用域為已宣告識別符號所表示的常量 型別 變數 函式或包在源 中的作用範圍。go 語言中變數可以在三個地方宣告 接下來讓我們具體了解區域性變數 全域性變數和形式引數。在函式體內宣告的變數稱之為區域性變數,它們的作用域只在函式體內,引數和返回值變數也是區域性變數。以下例項中 main 函式使用了區域性...

python 變數作用域問題(經典坑)

偶爾看到python的乙個經典坑 flist lambda i for i in range 5 for f in flist print f 按照一般邏輯,結果應該是 0 1 2 3 4 但執行結果是 444 44查了一下,主要是變數作用域問題和函式執行的問題。出現這種情況的主要原因是,迴圈在py...