Latest web development tutorials

言語変数のスコープを行きます

ソースコード内で一定の範囲の種類によって表される識別子、変数、関数、またはパッケージのスコープを主張しました。

ゴー言語変数は、次の3つの場所で宣言することができます。

  • 関数内で定義された変数はローカル変数と呼ばれます
  • 関数定義の外変数はグローバル変数と呼ばれています
  • 仮パラメータと呼ばれる関数定義変数

私たちは、特定のローカル変数、グローバル変数と仮パラメータを理解してみましょう。


ローカル変数

生体内のスコープで関数本体、彼らは唯一の関数の変数宣言のローカル変数と呼ばれ、変数のパラメータと戻り値は、ローカル変数です。

次の例では、main()関数は、ローカル変数をA、B、Cを使用しています。

package main

import "fmt"

func main() {
   /* 声明局部变量 */
   var a, b, c int 

   /* 初始化参数 */
   a = 10
   b = 20
   c = a + b

   fmt.Printf ("结果: a = %d, b = %d and c = %d\n", a, b, c)
}

上記の出力の実装の例としては、次のとおりです。

结果: a = 10, b = 20 and c = 30

グローバル変数

in vitroでの関数の変数宣言でグローバル変数と呼ばれ、グローバル変数(エクスポートされた後)であっても、外部のパッケージをパッケージ全体を使用することができます。

グローバル変数は任意の関数で使用することができ、次の例では、グローバル変数を使用する方法を示します。

package main

import "fmt"

/* 声明全局变量 */
var g int

func main() {

   /* 声明局部变量 */
   var a, b int

   /* 初始化参数 */
   a = 10
   b = 20
   g = a + b

   fmt.Printf("结果: a = %d, b = %d and g = %d\n", a, b, g)
}

上記の出力の実装の例としては、次のとおりです。

结果: a = 10, b = 20 and g = 30

グローバル変数とローカル変数に言語プログラムを行く同じ名前にすることができますが、関数内のローカル変数が優先されます。 例としては、次のとおりです:

package main

import "fmt"

/* 声明全局变量 */
var g int = 20

func main() {
   /* 声明局部变量 */
   var g int = 10

   fmt.Printf ("结果: g = %d\n",  g)
}

上記の出力の実装の例としては、次のとおりです。

结果: g = 10

仮パラメータ

使用されるローカル変数の関数としてフォームパラメータ。 例としては、次のとおりです:

package main

import "fmt"

/* 声明全局变量 */
var a int = 20;

func main() {
   /* main 函数中声明局部变量 */
   var a int = 10
   var b int = 20
   var c int = 0

   fmt.Printf("main()函数中 a = %d\n",  a);
   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);

   return a + b;
}

上記の出力の実装の例としては、次のとおりです。

main()函数中 a = 10
sum() 函数中 a = 10
sum() 函数中 b = 20
main()函数中 c = 30

ローカルおよびグローバル変数を初期化します

デフォルトの異なるタイプのローカルおよびグローバル変数:

データの種類 デフォルトの初期化
int型 0
float32 0
ポインタ ゼロ