Operatorul scurt de declarare a variabilelor (:=) în Golang este folosit pentru a crea variabile cu un nume unic și valoare inițială. Scopul principal al utilizării acestui operator este de a declara și inițializa variabilele locale în interiorul funcțiilor și de a restrânge domeniul de aplicare al variabilelor. Tipul variabilei este determinat de tipul expresiei. Cuvântul cheie var este folosit și pentru a crea variabile de un anumit tip. Deci, puteți spune că există două moduri de a crea variabile în Golang, după cum urmează:

- Folosind cuvântul cheie var
- Utilizați operatorul scurt de declarare a variabilelor (:=)
Acum să învățăm cum să folosim operatorul scurt de declarare a variabilei în Golang!
Conținutul principal
Sintaxă pentru utilizarea operatorului scurt de declarare a variabilei în Golang
variable_name := biểu thức hoặc giá trị
Aici, trebuie să inițializați variabila imediat după declarare. Dar folosind cuvântul cheie var puteți evita inițializarea la momentul declarației. Nu este nevoie să menționăm tipul variabilei. Expresia sau valoarea din partea dreaptă este utilizată pentru a evalua tipul variabilei.
De exemplu: Aici declarăm variabile folosind operator de declarație scurtă și nu specificăm tipul de variabilă. Tipul variabilei este determinat de tipul expresiei din partea dreaptă a operatorului :=.
// 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)
}
Rezultat:
The Value of a is: 30
The Value of Language is: Go Programming
Declararea mai multor variabile folosind operatorul de declarare scurtă
Operatorul de declarație scurtă poate fi folosit și pentru a declara mai multe variabile de același tip sau diferite într-o singură declarație. Tipurile acestor variabile sunt evaluate prin expresia din partea dreaptă a operatorului :=.
De exemplu:
// 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)
}
Rezultat:
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
Puncte importante de reținut:
Operatorul de declarație scurtă poate fi utilizat atunci când cel puțin o variabilă din partea stângă a operatorului :=este declarată nouă. Operatorul scurt de declarare a variabilelor funcționează ca o atribuire la variabilele declarate în cadrul aceluiași bloc lexical. Pentru a înțelege mai bine acest concept, să luăm un exemplu.
Exemplul 1: Programul de mai jos va genera o eroare deoarece nu există o variabilă nouă în partea stângă a operatorului :=.
// 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)
}
Eroare:
./prog.go:17:10: no new variables on left side of :=
Exemplul 2:
În programul de mai jos, puteți vedea linia geek3, geek2 := 456, 200 va funcționa bine fără nicio eroare, deoarece există cel puțin o nouă variabilă, adică geek3 în partea stângă a operatorului :=.
// 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)
}
Rezultat:
The value of geek1 and geek2 is : 78 200
The value of geek3 and geek2 is : 456 200
Go este un limbaj puternic tipizat, deoarece nu puteți atribui o valoare a unui alt tip de date unei variabile declarate.
De exemplu:
// 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"
}
Eroare:
./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
Într-o declarație scurtă de variabilă, Golang permite inițializarea unui set de variabile folosind un apel de funcție care returnează mai multe valori. Sau puteți spune că variabilelor li se pot atribui și valori care sunt evaluate în timpul execuției.
De exemplu:
// Tại đây, hàm math.Max function trả về
// số lớn nhất trong biến i
i := math.Max(x, y)
Variabilă locală sau variabilă globală
Cu ajutorul operatorului scurt de declarare a variabilelor (:=), puteți declara variabile locale al căror domeniu este doar la nivel de bloc. În general, variabilele locale sunt declarate în interiorul blocului funcțional. Dacă încercați să declarați variabile globale folosind operatorul de declarare scurtă, veți obține o eroare.
Exemplul 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)
}
Eroare:
./prog.go:15:1: syntax error: non-declaration statement outside function body
Exemplul 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)
}
Rezultat:
900
200