変数には 3 つのタイプがあります: 1. 関数内で定義された変数はローカル変数と呼ばれ、その範囲は関数の内部に限定されます。ローカル変数は常に存在するわけではなく、関数の後にのみ存在します。このローカル変数は、関数呼び出しが終了した後に破棄されます。 2. 関数の外で定義された変数はグローバル変数と呼ばれます。これらは 1 つのソース ファイルで定義するだけでよく、すべてのソース ファイルで使用できます。グローバル変数の宣言は var キーワードで始める必要があります。グローバル変数を使用する場合は、外部パッケージ内 変数の最初の文字は大文字にする必要があります。 3. 関数定義内の変数は仮パラメータと呼ばれます。
このチュートリアルの動作環境: Windows 7 システム、GO バージョン 1.18、Dell G3 コンピューター。
Go言語は静的型付け言語であるため、変数(変数)の型が明確であり、コンパイラも変数の型の正しさをチェックします。数学的な概念では、変数は固定値を持たず、変更可能な数値を表します。しかし、コンピュータ システムの実装の観点から見ると、変数はデータの保存に使用されるメモリの 1 つ以上のセグメントです。
変数 (定数、型、または関数) には、プログラム内で特定のスコープがあり、これをスコープと呼びます。
Go 言語を学ぶには、変数のスコープを理解することがより重要です。Go 言語はコンパイル中に各変数が使用されているかどうかをチェックするためです。未使用の変数が出現すると、コンパイル エラーが報告されます。 。変数のスコープを理解できない場合、原因不明のコンパイル エラーが発生する可能性があります。
変数の定義場所の違いにより、次の3種類に分けられます。
関数内で定義された変数をローカル変数と呼びます
関数の外で定義された変数はグローバル変数と呼ばれます
関数定義内の変数は仮パラメータと呼ばれます
以下でそれらについて説明しましょう。
ローカル変数
関数内で宣言/定義された変数はローカル変数と呼ばれ、ローカル変数の範囲は関数内に限定されます。関数。関数内で定義されている変数、関数のパラメータや戻り値、if構造体やfor構造体内で使用される変数などはすべてローカル変数です。
ローカル変数は常に存在するとは限りません。ローカル変数は、それを定義する関数が呼び出された後にのみ存在します。このローカル変数は、関数呼び出しが終了すると破棄されます。
[例] 次の main() 関数は、ローカル変数 a、b、c を使用します。
package main import ( "fmt" ) func main() { //声明局部变量 a 和 b 并赋值 var a int = 3 var b int = 4 //声明局部变量 c 并计算 a 和 b 的和 c := a + b fmt.Printf("a = %d, b = %d, c = %d\n", a, b, c) }
#変数の範囲を制限するには、{} を使用します#package main
import "fmt"
func main() {
{
name := "HaiCoder"
fmt.Println("Name =", name)
}
}
#{ } を使用します変数名のスコープを {} に制限します。つまり、この時点での変数名のスコープは {} 内のみであり、name はローカル変数です。
注: 変数が変数のスコープ外でアクセスされた場合、プログラムはエラーを報告します。
package main import "fmt" func main() { for i := 0; i < 3; i++{ fmt.Print(i) fmt.Print(" ") } fmt.Print(i) }
ローカル変数 i を変数の内部に定義します。 for ループを作成して使用します。このとき、変数 i のスコープは for ループ内の {} に限定されます。最後に、for ループの {} の外側で変数 i にアクセスすると、変数 i がスコープを超えているため、プログラムはエラーを報告します。
グローバル変数関数の外で宣言された変数をグローバル変数と呼びます。グローバル変数はソース ファイル内でのみ定義する必要があります。すべてのソース ファイルで使用できます。もちろん、このグローバル変数を含まないソース ファイルでは、このグローバル変数を使用する前に、「import」キーワードを使用して、グローバル変数が配置されているソース ファイルを導入する必要があります。
グローバル変数宣言は var キーワードで始まる必要があります。外部パッケージでグローバル変数を使用する場合は、最初の文字を大文字にする必要があります。
[例] 次のコードでは、6 行目でグローバル変数 c を定義しています。
package main import "fmt" //声明全局变量 var c int func main() { //声明局部变量 var a, b int //初始化参数 a = 3 b = 4 c = a + b fmt.Printf("a = %d, b = %d, c = %d\n", a, b, c) }
: Go 言語プログラムのグローバル変数とローカル変数の名前は同じにすることができますが、関数本体のローカル変数は次のようになります。優先されます。 package main
import "fmt"
//声明全局变量
var a float32 = 3.14
func main() {
//声明局部变量
var a int = 3
fmt.Printf("a = %d\n", a)
}
仮パラメータ関数を定義する場合、関数名の後の括弧内の変数は次のとおりです。仮パラメータと呼ばれます(仮パラメータと呼ばれます)。仮パラメータは関数が呼び出されたときにのみ有効になり、関数呼び出しが完了すると破棄されます。関数が呼び出されないとき、関数の仮パラメータは実際の記憶装置を占有せず、実際の値を持ちません。
仮パラメータは関数のローカル変数として使用されます。
[例] 以下のコードの 21 行目では、仮パラメータ a と b を定義しています。
package main import ( "fmt" ) //全局变量 a var a int = 13 func main() { //局部变量 a 和 b var a int = 3 var b int = 4 fmt.Printf("main() 函数中 a = %d\n", a) fmt.Printf("main() 函数中 b = %d\n", b) c := sum(a, b) fmt.Printf("main() 函数中 c = %d\n", c) } func sum(a, b int) int { fmt.Printf("sum() 函数中 a = %d\n", a) fmt.Printf("sum() 函数中 b = %d\n", b) num := a + b return num }
以上がGo言語にはいくつかの種類の変数がありますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。