Der kurze Variablendeklarationsoperator (:=) in Golang dient zum Erstellen von Variablen mit einem bestimmten Namen und Anfangswert. Der Hauptzweck dieses Operators besteht darin, lokale Variablen innerhalb von Funktionen zu deklarieren und zu initialisieren sowie den Gültigkeitsbereich von Variablen einzugrenzen. Der Typ der Variablen wird durch den Typ des Ausdrucks bestimmt. Das Schlüsselwort var wird ebenfalls zum Erstellen von Variablen eines bestimmten Typs verwendet. Es gibt also zwei Möglichkeiten, Variablen in Golang zu erstellen:

- Verwenden des Schlüsselworts var
- Verwenden Sie den kurzen Variablendeklarationsoperator (:=).
Jetzt lernen wir, wie man den kurzen Variablendeklarationsoperator in Golang verwendet!
Hauptinhalt
Syntax zur Verwendung des kurzen Variablendeklarationsoperators in Golang
variable_name := biểu thức hoặc giá trị
Hier müssen Sie die Variable unmittelbar nach der Deklaration initialisieren. Mit dem Schlüsselwort var können Sie die Initialisierung jedoch zum Zeitpunkt der Deklaration vermeiden. Der Variablentyp muss nicht erwähnt werden. Der Ausdruck oder Wert auf der rechten Seite dient zur Auswertung des Variablentyps.
Hier deklarieren wir beispielsweise Variablen mit dem Kurzdeklarationsoperator und geben den Typ der Variablen nicht an. Der Typ der Variablen wird durch den Typ des Ausdrucks auf der rechten Seite des Operators bestimmt :=.
// 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)
}
Ergebnis:
The Value of a is: 30
The Value of Language is: Go Programming
Deklarieren mehrerer Variablen mit dem Kurzdeklarationsoperator
Mit dem Kurzdeklarationsoperator können auch mehrere Variablen gleichen oder unterschiedlichen Typs in einer einzigen Deklaration deklariert werden. Die Typen dieser Variablen werden durch den Ausdruck auf der rechten Seite des Operators ausgewertet :=.
Zum Beispiel:
// 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)
}
Ergebnis:
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
Wichtige Punkte, die Sie beachten sollten:
Der Kurzdeklarationsoperator kann verwendet werden, wenn mindestens eine Variable links vom Operator :=neu deklariert wird. Der Kurzdeklarationsoperator funktioniert wie eine Zuweisung an Variablen, die im selben lexikalischen Block deklariert wurden. Um dieses Konzept besser zu verstehen, betrachten wir ein Beispiel.
Beispiel 1: Das folgende Programm gibt einen Fehler aus, da sich auf der linken Seite des Operators keine neue Variable befindet :=.
// 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)
}
Fehler:
./prog.go:17:10: no new variables on left side of :=
Beispiel 2:
Im folgenden Programm können Sie sehen, dass die Zeile „geek3, geek2 := 456, 200“ ohne Fehler funktioniert, da auf der linken Seite des Operators mindestens eine neue Variable, nämlich „geek3“, vorhanden ist :=.
// 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)
}
Ergebnis:
The value of geek1 and geek2 is : 78 200
The value of geek3 and geek2 is : 456 200
Go ist eine stark typisierte Sprache, da Sie einer deklarierten Variablen keinen Wert eines anderen Datentyps zuweisen können.
Zum Beispiel:
// 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"
}
Fehler:
./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
In einer kurzen Variablendeklaration ermöglicht Golang die Initialisierung eines Variablensatzes mithilfe eines Funktionsaufrufs, der mehrere Werte zurückgibt. Oder man kann sagen, Variablen können auch Werte zugewiesen werden, die zur Laufzeit ausgewertet werden.
Zum Beispiel:
// Tại đây, hàm math.Max function trả về
// số lớn nhất trong biến i
i := math.Max(x, y)
Lokale Variable oder globale Variable
Mithilfe des Kurzdeklarationsoperators (:=) können Sie lokale Variablen deklarieren, deren Gültigkeitsbereich nur auf Blockebene liegt. Lokale Variablen werden im Allgemeinen innerhalb des Funktionsblocks deklariert. Wenn Sie versuchen, globale Variablen mit dem Kurzdeklarationsoperator zu deklarieren, erhalten Sie eine Fehlermeldung.
Beispiel 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)
}
Fehler:
./prog.go:15:1: syntax error: non-declaration statement outside function body
Beispiel 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)
}
Ergebnis:
900
200