La parola chiave var in Golang viene utilizzata per creare variabili di un tipo specifico con un nome e un valore iniziale distinti. L'inizializzazione è facoltativa al momento della dichiarazione della variabile mediante la parola chiave var, di cui parleremo più avanti in questo articolo.

Sintassi:
var identifier type = expression
Per esempio:
// ở đây quantrimang1 là định danh
// hoặc tên biến, int là
// kiểu và 200 là giá trị được gán
var quantrimang1 int = 200
Come sapete, Go è un linguaggio staticamente tipizzato, ma offre comunque la possibilità di rimuovere la dichiarazione del tipo di dati durante la dichiarazione di una variabile, come mostrato nella sintassi seguente. Questo viene spesso definito inferenza di tipo .
Sintassi:
var identifier = initialValue
Per esempio:
var quantrimang1 = 200
Dichiarare più variabili utilizzando la parola chiave var
La parola chiave var viene utilizzata anche per dichiarare più variabili su una singola riga. È anche possibile fornire valori iniziali per le variabili come mostrato di seguito:
Dichiara più variabili utilizzando la parola chiave var insieme al tipo:
var quantrimang1, quantrimang2, quantrimang3, quantrimang4 int
Dichiarare più variabili utilizzando la parola chiave var insieme al loro tipo iniziale e valore.
var quantrimang1, quantrimang2, quantrimang3, quantrimang4 int = 10, 20, 30, 40
Nota:
È anche possibile utilizzare l'inferenza del tipo (discussa sopra) per far sapere al compilatore il tipo, ovvero avere la possibilità di cancellare il tipo durante la dichiarazione di più variabili.
Per esempio:
var quantrimang1, quantrimang2, quantrimang3, quantrimang4 = 10, 20, 30.30, true
È anche possibile utilizzare più righe per dichiarare e inizializzare valori di tipi diversi utilizzando la parola chiave var come segue:
Ad esempio:
var(
quantrimang1 = 100
quantrimang2 = 200.57
quantrimang3 bool
quantrimang4 string = "Quantrimang"
)
Se utilizzato typedurante la dichiarazione, è consentito dichiarare più variabili solo dello stesso tipo. Ma se si elimina typedurante la dichiarazione, è consentito dichiarare più variabili di tipi diversi.
Per esempio:
// Minh họa chương trình Go khai báo nhiều biến bằng từ khóa var
package main
import "fmt"
func main() {
// Khai báo và khởi tạo nhiều biến cùng loại trong một dòng cùng với kiểu
var geek1, geek2, geek3 int = 232, 784, 854
// Khai báo và khởi tạo nhiều biến của các kiểu khác nhau trong một dòng với kiểu không xác định
var geek4, geek5, geek6 = 100, "GFG", 7896.46
// Hiện giá trị của các biến
fmt.Printf("The value of geek1 is : %d\n", geek1)
fmt.Printf("The value of geek2 is : %d\n", geek2)
fmt.Printf("The value of geek3 is : %d\n", geek3)
fmt.Printf("The value of geek4 is : %d\n", geek4)
fmt.Printf("The value of geek5 is : %s\n", geek5)
fmt.Printf("The value of geek6 is : %f", geek6)
}
Risultato:
The value of geek1 is : 232
The value of geek2 is : 784
The value of geek3 is : 854
The value of geek4 is : 100
The value of geek5 is : GFG
The value of geek6 is : 7896.460000
Punti importanti da ricordare sulla parola chiave var in Go:
- Quando si dichiara una variabile utilizzando la parola chiave var, è possibile rimuovere il tipo o l'espressione =, ma non entrambi. Se lo elimini, il compilatore genererà un errore.
- Se si rimuove expression , per impostazione predefinita la variabile conterrà zero per i numeri e false per il valore booleano "" per le stringhe e nil per le interfacce e i tipi di riferimento. Quindi nel linguaggio Go non esiste il concetto di variabile non inizializzata.
Per esempio:
// Chương trình Go minh họa khái niệm từ khóa var
package main
import "fmt"
func main() {
// Biến được khai báo nhưng không có khởi tạo
var geek1 int
var geek2 string
var geek3 float64
var geek4 bool
// Hiện giá trị zero của các biến
fmt.Printf("The value of geek1 is : %d\n", geek1)
fmt.Printf("The value of geek2 is : %s\n", geek2)
fmt.Printf("The value of geek3 is : %f\n", geek3)
fmt.Printf("The value of geek4 is : %t", geek4)
}
Risultato:
The value of geek1 is : 0
The value of geek2 is :
The value of geek3 is : 0.000000
The value of geek4 is : false