goローカル変数とグローバル変数

1654 ワード

goはconstキーワードで定数を定義し、varキーワードで変数を定義します.定義方法:var{key}{type}
個々のオブジェクトを定義するには、次の手順に従います.
var str string = "hello"

複数の統合タイプを定義します.
var p, q float32 = 1.1, 2.2

または、
var (
k = 1
t = 2
)

[color=red]注意:[/color]stringとfloat 32は削除でき、コンパイラは自動的に判断します.
1つの変数は定義された後、プログラムに一定の範囲で使用できます.私たちは役割ドメインになり、役割ドメインの大きさによって、グローバル変数とローカル変数に分けることができます.関数外で宣言される変数はグローバル変数と呼ばれ、関数で自由に使用できます.関数で宣言されたオブジェクトは、この関数にのみ適用されます.ローカル変数と呼ばれます.次の例で説明します.

package main

var a = "G"

var (
k = 1
t = 2
)

var p, q float32 = 1.1, 2.2

func main() {
var a string
a = "t"
b := "q"
n()
m()
n()
print("main :
")
print(a, b, q, p)
}

func n() {
print(a)
}

func m() {
a = "O"
print(a)
}

上の例では、[color=red]a[/color]、k,t,p,qはいずれもグローバル変数であり、関数外で宣言する
main関数では,a,bは局所変数である.
[color=red][b][/b]:aは局所変数であり、グローバル変数である.
:=は付与方法でもあり、キーワードvarを省略すると変数タイプが自動的に判断されます.
[b]解析:[/b]関数はmainメソッドから実行し、メソッドボディ
第1行:aをstringタイプ変数として定義
2行目:文字列tをaに割り当てる
3行目:bをstringタイプとして定義し、文字列qを割り当てます.
第四行:n関数を実行して、aを出力して、このaの取ったグローバル変数、だからGを出力します
5行目:m関数を実行し、まずグローバル変数aをOにするので、Oを出力する
6行目:n関数を実行します.aはm関数でOになるので、nはOを出力します.
8行目:a,b,q,pの値を出力し,ここでのaは局所変数aをとるのでtである.
注意var a stringを注釈すると、a=「t」で変更されるグローバル変数は、結果が全く異なります.
[b]結論:[/b]関数でグローバル変数を再定義すると、関数ではグローバル変数の値が非表示になります.
グローバル変数は、参照されていないことを定義し、エラーを報告しません.
ローカル変数定義が参照されていないとエラーが発生します:declared and not used