Dichiarare e usare le variabili
Questo modulo inizia con una descrizione delle procedure per dichiarare e usare le variabili in Go. Esistono vari modi per dichiarare una variabile. Verranno esaminati tutti e sarà poi possibile scegliere quello più adatto alle proprie esigenze o al proprio stile. Durante la presentazione dei concetti di base per le variabili verranno messi in evidenza alcuni aspetti specifici che non si trovano in genere in altri linguaggi di programmazione.
In questa sezione sono inclusi frammenti di codice che è possibile eseguire in Visual Studio Code o in Go Playground.
Dichiarare le variabili
Per dichiarare una variabile, è necessario usare la parola chiave var
:
var firstName string
L'istruzione precedente dichiara una variabile denominata firstName
di tipo string
. I tipi di dati verranno descritti nella prossima sezione. Questo esempio illustra il modo più semplice per dichiarare una variabile. Se si vuole dichiarare un'altra variabile, è sufficiente aggiungere un'istruzione simile a quella precedente. È possibile dichiarare più di una variabile in una singola riga se sono dello stesso tipo:
var firstName, lastName string
Aggiungendo una virgola (,
) dopo un nome di variabile si indica che si sta per dichiarare un'altra variabile. In questo caso, l'istruzione precedente dichiara due variabili denominate firstName
e lastName
di tipo string
. Se si vuole aggiungere una terza variabile di tipo int
, il codice sarà simile al seguente:
var firstName, lastName string
var age int
Un altro modo per scrivere l'istruzione precedente consiste nell'usare le parentesi dopo la parola chiave var
, come se si usasse un blocco dedicato per dichiarare le variabili, come segue:
var (
firstName, lastName string
age int
)
Inizializzare le variabili
Finora si è visto solo come dichiarare le variabili, ma in alcuni casi sarà necessario che abbiano un valore iniziale. In Go è possibile inizializzare le variabili in diversi modi. Ad esempio, continuando con l'esempio precedente, è possibile inizializzare ogni variabile usando il codice seguente:
var (
firstName string = "John"
lastName string = "Doe"
age int = 32
)
Se si decide di inizializzare una variabile, non è necessario specificarne il tipo perché Go dedurrà il tipo quando si inizializza la variabile con un valore. Ad esempio, è possibile dichiarare e inizializzare le variabili come segue:
var (
firstName = "John"
lastName = "Doe"
age = 32
)
Go dedurrà che le variabili firstName
e lastName
sono di tipo string
e che la variabile age
è di tipo int
.
Vari modi per inizializzare le variabili
In Go è possibile dichiarare e inizializzare le variabili in una sola riga. Separare ogni nome di variabile con una virgola ed eseguire la stessa operazione per ogni valore (nello stesso ordine), come indicato di seguito:
var (
firstName, lastName, age = "John", "Doe", 32
)
È possibile dichiarare e inizializzare le variabili in un altro modo. Questo metodo è quello più comunemente usato in Go. Lo stesso esempio usato finora potrebbe essere come segue:
package main
import "fmt"
func main() {
firstName, lastName := "John", "Doe"
age := 32
fmt.Println(firstName, lastName, age)
}
Nota
Si noti l'istruzione import "fmt"
. Viene usata la parola chiave import
per inserire il contenuto di un pacchetto nell'ambito. Viene importato il pacchetto "fmt" in modo da poter usare il metodo Println
nel codice. Questa parola chiave verrà esaminata più in dettaglio in un'unità successiva.
Eseguire il codice precedente per confermare che questo modo di dichiarare e inizializzare le variabili funziona.
Si noti che in questo caso è necessario includere un segno di uguale seguito da due punti (:=
) e il valore corrispondente subito dopo aver definito il nome della variabile. Quando si usa il segno di uguale seguito da due punti, la variabile che si sta dichiarando deve essere nuova. Se si usa un segno di uguale seguito da due punti e la variabile è già stata dichiarata, il programma Aggiungere l'età come costante (vedere la sezione successiva), ma usare il segno di uguale seguito da due punti (:=
) e provare.
Infine è possibile usare il segno di uguale seguito da due punti solo all'interno di una funzione. Quando si dichiarano variabili esterne a una funzione, è necessario eseguire questa operazione tramite la parola chiave var
. Non è un problema se non si ha familiarità con le funzioni, perché verranno illustrate in un'unità successiva.
Dichiarare le costanti
In alcuni casi potrebbe essere necessario usare valori statici nel codice, noti come costanti. Go supporta l'uso di costanti. La parola chiave per dichiararne una è const
.
Ad esempio, è possibile dichiarare una costante come segue:
const HTTPStatusOK = 200
Come per le variabili, il tipo di una costante viene dedotto dal valore assegnato. In Go, i nomi delle costanti vengono in genere scritti con combinazione mista di maiuscole e minuscole oppure in lettere maiuscole.
Se è necessario dichiarare più costanti in un blocco, è possibile procedere come segue:
const (
StatusOK = 0
StatusConnectionReset = 1
StatusOtherError = 2
)
Nota
Go supporta un concetto interessante correlato alle costanti noto come iota, che non verrà trattato in questo modulo. Per altre informazioni in merito, vedere il wiki dedicato a Go su GitHub. È sufficiente tenere presente che iota
è una parola chiave usata da Go per semplificare le definizioni di costanti quando i valori sono sequenziali.
Sebbene esistano analogie tra le costanti e le variabili, vi sono alcune differenze principali. Ad esempio, è possibile dichiarare costanti senza usarle e non verrà visualizzato un messaggio di errore. Non è possibile usare il segno di uguale seguito due punti per dichiarare le costanti. Go lo segnalerà come un problema.
Go genera un errore se si dichiarano variabili e non le si usa
C'è qualcosa di fondamentale da tenere presente in Go. Quando si dichiara una variabile e non la si usa, Go genera un errore, non un avviso, a differenza di altri linguaggi di programmazione.
Tornare ad esempio a uno degli esempi precedenti e rimuovere la chiamata fmt.Println
:
func main() {
firstName, lastName := "John", "Doe"
age := 32
}
Quando si esegue questo codice in Visual Studio Code o in Go Playground, si noterà che è presente un errore nelle righe in cui vengono dichiarate le variabili. Verranno visualizzati questi messaggi di errore:
./main.go:4:2: firstName declared but not used
./main.go:4:13: lastName declared but not used
./main.go:5:2: age declared but not used
Tenere presente che ogni variabile dichiarata in Go deve essere usata.