De korte variabeledeclaratieoperator (:=) in Golang wordt gebruikt om variabelen te maken met een unieke naam en beginwaarde. Het hoofddoel van het gebruik van deze operator is het declareren en initialiseren van lokale variabelen binnen functies en het beperken van het bereik van variabelen. Het type van de variabele wordt bepaald door het type van de expressie. Het trefwoord var wordt ook gebruikt om variabelen van een specifiek type te maken. Je kunt dus stellen dat er twee manieren zijn om variabelen in Golang te creëren:

- Het gebruik van het var-trefwoord
- Gebruik de korte variabele declaratie operator (:=)
Laten we nu leren hoe we de korte variabeledeclaratie-operator in Golang gebruiken!
Hoofdinhoud
Syntaxis voor het gebruik van korte variabele declaratie-operatoren in Golang
variable_name := biểu thức hoặc giá trị
Hier moet u de variabele direct na de declaratie initialiseren. Maar door het sleutelwoord var te gebruiken kunt u initialisatie op het moment van de declaratie vermijden. Het is niet nodig om het type van de variabele te vermelden. De expressie of waarde aan de rechterkant wordt gebruikt om het type van de variabele te evalueren.
Bijvoorbeeld: hier declareren we variabelen met behulp van een korte declaratie-operator en specificeren we het type van de variabele niet. Het type van de variabele wordt bepaald door het type van de expressie aan de rechterkant van de operator :=.
// 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)
}
Resultaat:
The Value of a is: 30
The Value of Language is: Go Programming
Meerdere variabelen declareren met behulp van de korte declaratieoperator
De korte declaratieoperator kan ook worden gebruikt om meerdere variabelen van hetzelfde of verschillende typen in één declaratie te declareren. De typen van deze variabelen worden geëvalueerd door de expressie aan de rechterkant van de operator :=.
Bijvoorbeeld:
// 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)
}
Resultaat:
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
Belangrijke punten om te onthouden:
De korte declaratieoperator kan worden gebruikt wanneer minstens één variabele aan de linkerkant van de operator :=nieuw is gedeclareerd. De korte operator voor variabeledeclaratie werkt als een toewijzing aan variabelen die binnen hetzelfde lexicale blok zijn gedeclareerd. Om dit concept beter te begrijpen, nemen we een voorbeeld.
Voorbeeld 1: Het onderstaande programma geeft een fout omdat er geen nieuwe variabele aan de linkerkant van de operator is :=.
// 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)
}
Fout:
./prog.go:17:10: no new variables on left side of :=
Voorbeeld 2:
In het onderstaande programma kunt u zien dat de regel geek3, geek2 := 456, 200 prima werkt zonder fouten, omdat er minstens één nieuwe variabele, namelijk geek3, aan de linkerkant van de operator staat :=.
// 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)
}
Resultaat:
The value of geek1 and geek2 is : 78 200
The value of geek3 and geek2 is : 456 200
Go is een sterk getypeerde taal, omdat u geen waarde van een ander gegevenstype aan een gedeclareerde variabele kunt toewijzen.
Bijvoorbeeld:
// 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"
}
Fout:
./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 een korte variabeledeclaratie staat Golang het initialiseren van een set variabelen toe met behulp van een functieaanroep die meerdere waarden retourneert. Je kunt ook zeggen dat er aan variabelen waarden kunnen worden toegekend die tijdens runtime worden geëvalueerd.
Bijvoorbeeld:
// 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 variabele of globale variabele
Met behulp van de korte variabeledeclaratieoperator (:=) kunt u lokale variabelen declareren waarvan de reikwijdte alleen op blokniveau is. Over het algemeen worden lokale variabelen in het functieblok gedeclareerd. Als u globale variabelen probeert te declareren met behulp van de korte declaratieoperator, krijgt u een foutmelding.
Voorbeeld 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)
}
Fout:
./prog.go:15:1: syntax error: non-declaration statement outside function body
Voorbeeld 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)
}
Resultaat:
900
200