ホームページ > バックエンド開発 > Golang > golangの「var」と「:=」の違い

golangの「var」と「:=」の違い

王林
リリース: 2019-12-24 17:11:23
オリジナル
7178 人が閲覧しました

golangの「var」と「:=」の違い

Go 言語では変数を定義する方法がたくさんあります。

var キーワードの使用は、Go で変数を定義する最も基本的な方法です。場合によっては、変数の定義に := も使用されます。

変数の定義

1

2

3

// 定义一个名称为“variableName”,类型为"type"的变量

// var variableName type

var number int

ログイン後にコピー

変数の定義と値の初期化

1

2

3

// 初始化“variableName”的变量为“value”值,类型是“type”

// var variableName type = value

var number int = 10

ログイン後にコピー

複数の変数を同時に初期化します。並列割り当てとも呼ばれます

1

2

3

4

5

6

/*

    定义三个类型都是"type"的变量,并且分别初始化为相应的值

    vname1为v1,vname2为v2,vname3为v3

*/

// var vname1, vname2, vname3 type = v1, v2, v3

var number1, number2, number3 int = 1, 2, 3

ログイン後にコピー

上記の定義は少し面倒だと思いますか?それは問題ではありません。Go 言語の設計者も、Go 言語をより単純にする方法があることを発見したからです。型宣言を直接無視できます。その場合、上記のコードは次のようになります。

1

2

3

4

5

6

7

/*   

定义三个变量,它们分别初始化为相应的值   

vname1为v1,vname2为v2,vname3为v3   

然后Go会根据其相应值的类型来帮你初始化它们

*/

// var vname1, vname2, vname3 = v1, v2, v3

var number1, number2, number3 = 1, 2, 3

ログイン後にコピー

上記はまだ少し面倒だと思いますか?わかりました、私もそう思います。単純化を続けましょう:

1

2

3

4

5

6

/*   

定义三个变量,它们分别初始化为相应的值   

vname1为v1,vname2为v2,vname3为v3   

编译器会根据初始化的值自动推导出相应的类型*/

// vname1, vname2, vname3 := v1, v2, v3

number1, number2, number3 := 1, 2, 3

ログイン後にコピー

非常に単純に見えませんか? := このシンボルは、vartype を直接置き換えます。この形式は、短いステートメントと呼ばれます。ただし、関数内でのみ使用でき、関数外で使用するとコンパイルされないという制限があるため、グローバル変数の定義には var メソッドが一般的に使用されます。

つまり、「:=」は「ローカル変数」を宣言する場合にのみ使用できますが、「var」にはこの制限がありません。

おすすめの関連記事とチュートリアル: golang チュートリアル

以上がgolangの「var」と「:=」の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート