Goの短い変数宣言演算子

Golangの短い変数宣言演算子 (:=) は、一意の名前と初期値を持つ変数を作成するために使用されます。この演算子を使用する主な目的は、関数内でローカル変数を宣言および初期化し、変数のスコープを狭めることです。変数の型は式の型によって決まります。 var キーワードは、特定の型の変数を作成するためにも使用されます。つまり、Golang で変数を作成する方法は次の 2 つあると言えます。

Goの短い変数宣言演算子

  • varキーワードの使用
  • 短い変数宣言演算子 (:=) を使用する

それでは、Golang で短い変数宣言演算子を使用する方法を学びましょう。

メインコンテンツ

Golang で短い変数宣言演算子を使用するための構文

variable_name := biểu thức hoặc giá trị

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

たとえば、ここでは短い宣言演算子を使用して変数を宣言し、変数の型を指定していません。変数の型は、演算子の右側の式の型によって決まります:=

// Minh họa chương trình Go dùng := (toán tử khai báo ngắn) 
package main

import "fmt"

func main() {

	// khai báo và khởi tạo biến
	a := 30

	// lấy một biến chuỗi
	Language: = "Go Programming"

	fmt.Println("The Value of a is: ", a)
	fmt.Println("The Value of Language is: ", Language)

}

結果:

The Value of a is:  30
The Value of Language is:  Go Programming

短い宣言演算子を使用して複数の変数を宣言する

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

例えば:

// Minh họa chương trình Go dùng toán tử khai báo ngắn := short để khai báo nhiều
// biến thành một câu lệnh khai báo duy nhất
package main

import "fmt"

func main() { 

// nhiều biến của cùng kiểu(int)
geek1, geek2, geek3 := 117, 7834, 5685

// nhiều biến của các kiểu khác nhau
geek4, geek5, geek6 := "GFG", 859.24, 1234

// Hiện giá trị và kiểu của biến
fmt.Printf("The value of geek1 is : %d\n", geek1) 
fmt.Printf("The type of geek1 is : %T\n", geek1) 

fmt.Printf("\nThe value of geek2 is : %d\n", geek2) 
fmt.Printf("The type of geek2 is : %T\n", geek2) 

fmt.Printf("\nThe value of geek3 is : %d\n", geek3) 
fmt.Printf("The type of geek3 is : %T\n", geek3)

fmt.Printf("\nThe value of geek4 is : %s\n", geek4) 
fmt.Printf("The type of geek4 is : %T\n", geek4)


fmt.Printf("\nThe value of geek5 is : %f\n", geek5) 
fmt.Printf("The type of geek5 is : %T\n", geek5)

fmt.Printf("\nThe value of geek6 is : %d\n", geek6) 
fmt.Printf("The type of geek6 is : %T\n", geek6)

} 

結果:

The value of geek1 is : 117
The type of geek1 is : int

The value of geek2 is : 7834
The type of geek2 is : int

The value of geek3 is : 5685
The type of geek3 is : int

The value of geek4 is : GFG
The type of geek4 is : string

The value of geek5 is : 859.240000
The type of geek5 is : float64

The value of geek6 is : 1234
The type of geek6 is : int

覚えておくべき重要なポイント:

短縮宣言演算子は、演算子の左側の少なくとも 1 つの変数が:=新しく宣言されている場合に使用できます。短い変数宣言演算子は、同じ字句ブロック内で宣言された変数への割り当てのように機能します。この概念をよりよく理解するために、例を見てみましょう。

例 1: 以下のプログラムは、演算子の左側に新しい変数がないため、エラーをスローします:=

// Minh họa chương trình Go dùng khai báo biến ngắn
package main

import "fmt"

func main() { 

	// lấy hai biến
	p, q := 100, 200

	fmt.Println("Value of p ", p, "Value of q ", q)

	// Báo lỗi vì không có biến mới ở bên tay trái của :=
	p, q := 500, 600
	
	fmt.Println("Value of p ", p, "Value of q ", q)
}

エラー:

./prog.go:17:10: no new variables on left side of := 

例2:

以下のプログラムでは、演算子の左側に少なくとも 1 つの新しい変数 (つまり geek3) があるため、 geek3, geek2 := 456, 200 の行がエラーなしで正常に動作することがわかります:=

// Chương trình Go dùng toán tử khai báo biến ngắn
package main 

import "fmt"

func main() { 

// Ở đây, khai báo biến ngắn hoạt động
// như một phép gán cho biến geek1
// vì cùng một biến có trong cùng một khối
// do đó giá trị của geek2 được thay đổi từ 100 thành 200
geek1, geek2 := 78, 100

// ở đây, := được sử dụng như một phép gán cho geek2
// vì nó đã được khai báo. Ngoài ra, dòng này
// sẽ hoạt động tốt vì geek3 mới được tạo
// biến
geek3, geek2 := 456, 200

// Nếu bạn thử chạy các dòng được chú thích,
// thì trình biên dịch sẽ báo lỗi vì
// các biến này đã được định nghĩa
// geek1, geek2 := 745, 956
// geek3 := 150

// Hiện giá trị của các biến
fmt.Printf("The value of geek1 and geek2 is : %d %d\n", geek1, geek2) 
											
fmt.Printf("The value of geek3 and geek2 is : %d %d\n", geek3, geek2) 
} 

結果:

The value of geek1 and geek2 is : 78 200
The value of geek3 and geek2 is : 456 200

Go は、宣言された変数に異なるデータ型の値を割り当てることができないため、強く型付けされた言語です。

例えば:

// Minh họa chương trình Go dùng toán tử khai báo biến ngắn
package main 

import "fmt"

func main() { 

	// lấy một biến của int
	z := 50
	
	fmt.Printf("Value of z is %d", z)
	
	// gán lại giá trị của kiểu chuỗi
// nó sẽ đưa ra lỗi
	z := "Golang"
} 

エラー:

./prog.go:16:4: no new variables on left side of := 
./prog.go:16:7: cannot use “Golang” (type string) as type int in assignment 
 

Golang では、短い変数宣言で、複数の値を返す関数呼び出しを使用して変数のセットを初期化できます。あるいは、変数には実行時に評価される値を割り当てることもできると言えます。

例えば:

// Tại đây, hàm math.Max function trả về
// số lớn nhất trong biến i 
i := math.Max(x, y)

ローカル変数またはグローバル変数

短い変数宣言演算子 (:=) を使用すると、スコープがブロック レベルのみであるローカル変数を宣言できます。通常、ローカル変数は関数ブロック内で宣言されます。短い宣言演算子を使用してグローバル変数を宣言しようとすると、エラーが発生します。

例1:

// Chương trình Go hiển thị cách sử dụng toán tử :=
// để khai báo các biến cục bộ
package main

import "fmt"

// sử dụng từ khóa var để khai báo
// và khởi tạo biến
// đó là package hoặc bạn có thể nói
// phạm vi cấp toàn cục
var geek1 = 900

// sử dụng khai báo biến ngắn
// sẽ báo lỗi
geek2 := 200

func main() {

// truy cập geek1 bên trong hàm
fmt.Println(geek1)

// truy cập geek2 bên trong hàm
fmt.Println(geek2)

}

エラー:

./prog.go:15:1: syntax error: non-declaration statement outside function body 

例2:

// Chương trình Go dùng toán tử := operator
// để khai báo các biến cục bộ
package main 

import "fmt"

// dùng từ khóa var để khai báo
// và khởi tạo biến
// nó đóng gói hoặc bạn có thể báo
// phạm vi cấp toàn cục
var geek1 = 900


func main() { 

// dùng khai báo biến ngắn
// bên trong hàm chính
// nó có phạm vi cục bộ tức là không thể
// truy cập bên ngoài hàm chính
geek2 := 200

// truy cập geek1 bên trong hàm này
fmt.Println(geek1) 

// truy cập geek2 bên trong hàm này
fmt.Println(geek2) 
	
} 

結果:

900
200
Sign up and earn $1000 a day ⋙

Leave a Comment

外部モニターはノートパソコンのバッテリーに悪影響を及ぼす可能性があります。

外部モニターはノートパソコンのバッテリーに悪影響を及ぼす可能性があります。

ノートパソコンを外部モニターと組み合わせて使用​​すると、生産性が向上し、仕事がやりやすくなります。しかし、時間が経つにつれて、ノートパソコンのバッテリーが突然すぐに消耗し、バッテリー寿命が短くなり始めることに気付くでしょう。

折りたたみ式スマホの予想外の8つの大きなデメリット

折りたたみ式スマホの予想外の8つの大きなデメリット

折りたたみ式の携帯電話がかなりクールであることは否定できません。しかし、しばらく使用してみると、このデバイスにはいくつかの癖があることがわかりました。折りたたみ式スクリーンの携帯電話の予想外の 5 つの主な欠点をご紹介します。

AdobeはPremiere ProにAIビデオ作成技術を導入します

AdobeはPremiere ProにAIビデオ作成技術を導入します

Adobe は AI ビデオ作成技術を新たな方法で大衆に提供したが、この技術を使った完成した映画はまだ作成されていない。

2025年4月の最新Genshin Impactコード

2025年4月の最新Genshin Impactコード

Genshin Impact 5.5 コードは、原始石、魔法の鉱物、経験値、その他多くの報酬との交換に役立ちます。

IPadをMacのディスプレイとして使う方法

IPadをMacのディスプレイとして使う方法

macOS Catalina と iPadOS には、iPad を Mac のセカンダリディスプレイとして使用できるように設計された Sidecar という新機能のサポートが含まれています。

壁紙 1280、美しい Nokia 1280 の携帯電話の壁紙

壁紙 1280、美しい Nokia 1280 の携帯電話の壁紙

これは Nokia 1280 の壁紙のセットです。1280 の壁紙やブリック フォンの壁紙を取得するためにテキストを送信したことがある場合は、これらの壁紙を見てみてください。

極超音速宇宙飛行機が時速11,115kmに到達

極超音速宇宙飛行機が時速11,115kmに到達

ヴィーナス・エアロスペース社は、最高速度マッハ9に相当する時速11,115キロに達することができる新型極超音速航空機「スターゲイザー」の初画像を公開した。

朝食にバナナを食べると、お腹の張りが軽減される

朝食にバナナを食べると、お腹の張りが軽減される

腹部膨満は誰にでも起こり得ます。幸いなことに、朝食は、腹部膨満感を軽減するのに役立つ食材を食事に加えるのに最適な時間です。その材料はバナナです。

OpenAI、ChatGPTのAI画像生成機能のメジャーアップデートを発表

OpenAI、ChatGPTのAI画像生成機能のメジャーアップデートを発表

OpenAIはChatGPTのAI画像生成機能の注目すべきアップグレードを正式に導入しました。これは、以前のDALL-Eのような別の画像生成モデルを使用する代わりに重要な前進です。

Deepseek、一般的なハードウェア構成で問題なく動作する無料の言語モデルv3をリリース

Deepseek、一般的なハードウェア構成で問題なく動作する無料の言語モデルv3をリリース

中国の AI スタートアップ企業 DeepSeek が、最新の大規模言語モデル (LLM) である DeepSeek-V3-0324 を正式にリリースしました。

Gboardを捨ててSamsungキーボードに切り替える理由

Gboardを捨ててSamsungキーボードに切り替える理由

Gboard は長い間、Android スマートフォンの定番キーボードでした。しかし、最近になって多くの人が Samsung キーボードに切り替え、後戻りしなくなりました。

恋人たちに贈る甘くロマンチックな週末の願い

恋人たちに贈る甘くロマンチックな週末の願い

甘くロマンチックな週末のお祝いを恋人に送りましょう。それらは単なる言葉やメッセージであっても、意味のある霊的な贈り物となり、あなたの関係を強化するのに役立ちます。

ハリー・ポッターのテレビシリーズが成功するには、以下の要素が必要です

ハリー・ポッターのテレビシリーズが成功するには、以下の要素が必要です

HBOのハリー・ポッターのリメイクは2026年に初公開される予定です。テレビ版ハリー・ポッターの成功の理由は次のとおりです。

世界各地のスーパームーンの素晴らしい写真

世界各地のスーパームーンの素晴らしい写真

美しい月の写真はインターネット上では珍しくありません。この記事では、世界で最も美しい月の写真をまとめて紹介します。

AMD Ryzenユーザーは、無料でパフォーマンス向上を図るためにこのBIOSアップデートをインストールすべきです

AMD Ryzenユーザーは、無料でパフォーマンス向上を図るためにこのBIOSアップデートをインストールすべきです

現在、AMD は、パフォーマンスが低迷している主力 CPU ラインの問題に対処するため、1 秒あたりのフレーム数を数フレーム向上できる新しいアップデートを発表しました。