Lezioni del modulo (1/5)
Variabili e tipi
In Go ogni variabile ha un tipo statico noto al compilatore: una volta dichiarata, una variabile non può cambiare tipo. Questa rigidità — molto diversa da JavaScript o Python — è il prezzo da pagare per ottenere errori a compile-time invece che runtime, binari piccoli e performance prevedibili.
Due forme di dichiarazione
var con tipo esplicito
var name string = "Ada"
var age int = 36
var active boolQuando ometti il valore (come in var active bool) la variabile riceve lo
zero value del tipo — torniamo su questo nella prossima lezione.
Dichiarazione corta :=
Dentro a una funzione puoi usare :=, che inferisce il tipo dall'espressione
a destra. È la forma idiomatica e quella che userai il 90% delle volte:
name := "Ada" // string
age := 36 // int
pi := 3.14 // float64
active := true // boolI tipi base che incontrerai subito
| Tipo | Esempio | Note |
|---|---|---|
int | 42 | dimensione dipende dalla CPU (32 o 64 bit) |
float64 | 3.14 | default per i letterali decimali |
string | "Ada" | UTF-8, immutabile |
bool | true, false | niente "truthy", solo bool puro |
rune | 'A' | alias di int32, rappresenta un code point Unicode |
byte | 0x7F | alias di uint8 |
Esistono anche int8/16/32/64, uint8/16/32/64, float32 e complex64/128
per quando ti servono dimensioni precise (parsing binario, interop, ecc.).
Dichiarazioni multiple
Puoi dichiarare più variabili con var-block o := plurale:
var (
name string = "Ada"
age int = 36
active bool
)
x, y := 10, 20
a, b, c := "a", 2, true // tipi diversi: nessun problemaVariabili dichiarate ma non usate
Go è severo: una variabile dichiarata e mai usata è un errore di
compilazione, non un warning. Lo stesso vale per gli import non usati.
func main() {
x := 42
// errore: x declared and not used
}Per silenziare temporaneamente la regola si usa _ (blank identifier):
_ = xProva tu
Dichiara con var una variabile name di tipo string con valore 'Ada' e stampala.
Mostra suggerimento
La forma estesa è `var <nome> <tipo> = <valore>`.
Soluzione disponibile dopo 3 tentativi
In una sola riga, usa := per assegnare 36 a age e 'Roma' a city, poi stampa entrambe.
Mostra suggerimento
Puoi assegnare più variabili contemporaneamente: `a, b := 1, "due"`.
Soluzione disponibile dopo 3 tentativi
Quale di queste dichiarazioni produce un errore di compilazione se messa al di FUORI di una funzione?
// (a)
var name string = "Ada"
// (b)
age := 36
// (c)
const PI = 3.14Recap
- Tipo statico, inferito automaticamente da
:=o dichiarato convar. :=solo dentro funzioni; a package level solovar/const.- Variabili e import inutilizzati = errore di compilazione: usa
_per silenziare. int/float64/string/boolcoprono il 90% dei casi quotidiani.