English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Golang 基礎トレーニング

Golang 制御文

Golang ファンクション & メソッド

Golang 枚举体

Golang スライス & 配列

Golang 文字列(String)

Golang ポインタ

Golang インターフェース

Golang 并行処理

Golang エラ

Golang 他の雑多な項目

Go 短変数宣言演算子(:=)

Golangの短変数宣言演算子(:=)は、適切な名前と初期値を持つ変数を作成するために使用されます。この演算子の主な目的は、関数内で局所変数を宣言および初期化し、変数の範囲を狭めることです。変数の型は式の型によって決定されます。varキーワードは、特定の型の変数を作成するためにも使用されます。したがって、Golangでは変数を作成する方法が2種類あります。以下のように示されます:

  • varキーワードを使用する

  • 短変数宣言演算子(:=)を使用する

この記事では、短変数宣言演算子についてのみ議論します。varキーワードについての詳細は、以下を参照してください。Goで参照varキーワード

短変数宣言演算子の语法を使用する:

variable_name := 式 または 値

ここでは、宣言の直後に変数を初期化する必要があります。変数の型を言及する必要はありません。変数の型を評価するために、右側の式や値を使用します。また、varキーワードを使用することで宣言時に初期化を避けることができます。

例:ここでは、短い宣言演算子を使用して変数を宣言し、変数の型を指定しません。変数の型は:=演算子の右側の式の型が決定します。

package main
import "fmt"
func main() {
    //変数の宣言と初期化
    a := 30
    //文字列変数を受け取ります
    Language := "Go 言語基本チュートリアル"
    fmt.Println("aの値は: ", a)
    fmt.Println("Languageの値: ", Language)
}

出力:

aの値は:  30
Languageの値:  Go 言語基本チュートリアル

短い宣言演算子(:=)を使用して複数の変数を宣言

短い宣言演算子も、単一の宣言で複数の変数を宣言するために使用できます同じタイプまたは異なるタイプの複数の変数。これらの変数の型は:=演算子の右側の式が評価されます。

package main
import "fmt"
func main() {
    //複数の同じタイプの変数(int)
    w3コードボックス1, w3コードボックス2, w3コードボックス3 := 117, 7834, 5685
    //異なるタイプの複数の変数
    w3コードボックス4, w3コードボックス5, w3コードボックス6 := "GFG", 859.24, 1234
    //値と変数の型を表示
    fmt.Printf("w3コードボックス1 の値は:%d\n"、w3コードボックス1)}}
    fmt.Printf("w3コードボックス1 の型は:%T\n"、w3コードボックス1)}}
    fmt.Printf("\nw3コードボックス2 の値は:%d\n"、w3コードボックス2)}}
    fmt.Printf("w3コードボックス2 の型は:%T\n"、w3コードボックス2)}}
    fmt.Printf("\nw3コードボックス3 の値は:%d\n"、w3コードボックス3)}}
    fmt.Printf("w3コードボックス3 の型は:%T\n"、w3コードボックス3)}}
    fmt.Printf("\nw3コードボックス4 の値は:%s\n"、w3コードボックス4)}}
    fmt.Printf("w3コードボックス4 の型は:%T\n"、w3コードボックス4)}}
    fmt.Printf("\nw3コードボックス5 の値は:%f\n"、w3コードボックス5)}}
    fmt.Printf("w3コードボックス5 の型は:%T\n"、w3コードボックス5)}}
    fmt.Printf("\nw3コードボックス6 の値は:%d\n"、w3コードボックス6)}}
    fmt.Printf("w3コードボックス6 の型は:%T\n"、w3コードボックス6)}}
}

出力:

w3コードボックス1 の値は: 117
w3コードボックス1 の型は:int
w3コードボックス2 の値は: 7834
w3コードボックス2 の型は:int
w3コードボックス3 の値は: 5685
w3コードボックス3 の型は:int
w3コードボックス4 の値は:GFG
w3コードボックス4 の型は:string
w3コードボックス5 の値は: 859.240000
w3コードボックス5 の型は:float64
w3コードボックス6 の値は: 1234
w3コードボックス6 の型は:int

:=で宣言されたのはローカル変数かグローバル変数ですか?

短い変数宣言演算子(:=)を使用して宣言することができますブロックレベルのスコープのみを持っていますのローカル変数。通常、ローカル変数は機能ブロック内で宣言されます。short宣言演算子(:=)を使用してグローバル変数を宣言しようとすると、エラーメッセージが表示されます。

package main  
    
import "fmt"
    
//varキーワードを使用して宣言
//変数を初期化
//パッケージ変数、またはグローバル範囲と呼ばれます
var w3コードボックス1 := 900  
    
//短い変数宣言を使用
//エラーが発生します
w3コードボックス2 := 200  
    
func main() {  
    
//関数内部でwにアクセス3コードボックス1
fmt.Println(w3コードボックス1)}}  
   
// 関数内部でwにアクセス3コードボックス2
fmt.Println(w3コードボックス2)}}  
        
}

出力エラー:

.\test.go:12:1:構文エラー:非-関数本体外の宣言文
#.\test.go:12:1:構文エラー:関数本体外の非宣言文
package main
import "fmt"
//グローバル変数をvarで宣言
var w3コードボックス1 := 900
func main() {
    //短い変数宣言を使用
    //メイン関数内で
    //ローカルスコープを持っているため、以下のように
    //メイン関数の外でアクセス
    w3コードボックス2 := 200
    //関数内部でwにアクセス3コードボックス1
    fmt.Println(w3コードボックス1)}}
    //関数内部でwにアクセス3コードボックス2
    fmt.Println(w3コードボックス2)}}
}

出力:

900
200