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

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

王林
王林オリジナル
2019-12-24 17:11:236699ブラウズ

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

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

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

変数の定義

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

変数の定義と値の初期化

// 初始化“variableName”的变量为“value”值,类型是“type”
// var variableName type = value
var number int = 10

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

/*
    定义三个类型都是"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 言語をより単純にする方法があることを発見したからです。型宣言を直接無視できます。その場合、上記のコードは次のようになります。

/*    
定义三个变量,它们分别初始化为相应的值    
vname1为v1,vname2为v2,vname3为v3    
然后Go会根据其相应值的类型来帮你初始化它们
*/
// var vname1, vname2, vname3 = v1, v2, v3
var number1, number2, number3 = 1, 2, 3

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

/*    
定义三个变量,它们分别初始化为相应的值    
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 までご連絡ください。