Saltar al contenido principal
eLearner.app
Módulo 1 · Lección 1 de 51/50 en el curso~10 min
Lecciones del módulo (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

Go
var name string = "Ada"
var age int = 36
var active bool

Quando 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:

Go
name := "Ada"   // string
age := 36        // int
pi := 3.14       // float64
active := true   // bool

I tipi base che incontrerai subito

TipoEsempioNote
int42dimensione dipende dalla CPU (32 o 64 bit)
float643.14default per i letterali decimali
string"Ada"UTF-8, immutabile
booltrue, falseniente "truthy", solo bool puro
rune'A'alias di int32, rappresenta un code point Unicode
byte0x7Falias 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:

Go
var (
    name   string = "Ada"
    age    int    = 36
    active bool
)

x, y := 10, 20
a, b, c := "a", 2, true   // tipi diversi: nessun problema

Variabili 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.

Go
func main() {
    x := 42
    // errore: x declared and not used
}

Per silenziare temporaneamente la regola si usa _ (blank identifier):

Go
_ = x

Prova tu

Ejercicio#go.m1.l1.e1
Intentos: 0Cargando...

Dichiara con var una variabile name di tipo string con valore 'Ada' e stampala.

Cargando editor...
Mostrar pista

La forma estesa è `var <nome> <tipo> = <valore>`.

Solución disponible después de 3 intentos

Ejercicio#go.m1.l1.e2
Intentos: 0Cargando...

In una sola riga, usa := per assegnare 36 a age e 'Roma' a city, poi stampa entrambe.

Cargando editor...
Mostrar pista

Puoi assegnare più variabili contemporaneamente: `a, b := 1, "due"`.

Solución disponible después de 3 intentos

Cuestionario#go.m1.l1.e3
Listo

Quale di queste dichiarazioni produce un errore di compilazione se messa al di FUORI di una funzione?

Go
// (a)
var name string = "Ada"

// (b)
age := 36

// (c)
const PI = 3.14
Opciones de respuesta

Recap

  • Tipo statico, inferito automaticamente da := o dichiarato con var.
  • := solo dentro funzioni; a package level solo var/const.
  • Variabili e import inutilizzati = errore di compilazione: usa _ per silenziare.
  • int/float64/string/bool coprono il 90% dei casi quotidiani.