0Pricing
Go Academy · Lezione

Tipi integrati di Go

int, float64, string, bool e i relativi valori zero

Tipi integrati di Go è una lezione Go Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Go Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Go Academy include 4 lezioni in totale.

Panoramica del sistema dei tipi di Go

Go dispone di un ricco insieme di tipi predefiniti organizzati in categorie:

  • Booleano: bool
  • Intero: int, int8, int16, int32, int64 e varianti senza segno
  • A virgola mobile: float32, float64
  • Stringa: string
  • Complesso: complex64, complex128

Tipi interi

Go offre tipi interi dipendenti dalla piattaforma e di dimensione fissa:

  • int / uint — dimensione dipendente dalla piattaforma (32 o 64 bit)
  • int8…int64 — larghezze fisse in bit
  • byte — alias di uint8
  • rune — alias di int32, rappresenta un punto di codice Unicode

Usi int per gli interi di uso generale, a meno che non abbia bisogno di una larghezza specifica.

float64 e float32

I tipi a virgola mobile seguono lo standard IEEE 754:

package main

func main() {
    var f32 float32 = 3.14
    var f64 float64 = 3.141592653589793
    ratio := f64 / 2.0  // float64 inferred
    _ = f32
    _ = ratio
}

Tipo string

Le stringhe in Go sono sequenze di byte immutabili codificate in UTF-8:

  • Tra virgolette doppie: "Hello" — supportano le sequenze di escape
  • Tra apici inversi: `raw string` — non elaborano gli escape e possono estendersi su più righe
  • len(s) restituisce il numero di byte, non di caratteri
  • Per iterare sui caratteri usi range, ottenendo valori rune

Tipo bool

Il tipo bool ha due valori: true e false.

  • Il valore zero è false
  • Operatori logici: &&, ||, !
  • Gli operatori di confronto restituiscono un bool: ==, !=, <, >
  • Go non converte implicitamente gli interi in bool, a differenza di C

Riepilogo dei valori zero

Ogni tipo ha un valore zero ben definito:

  • int, tutti i tipi numerici → 0
  • float64 → 0.0
  • string → ""
  • bool → false
  • *T, slice, map, chan, func → nil

I valori zero rendono sicuro il codice Go: non si legge mai memoria non inizializzata.

Valori letterali numerici

Go supporta diversi formati di valori letterali numerici:

package main

func main() {
    dec  := 1_000_000   // digit separators
    hex  := 0xFF
    oct  := 0o777
    bin  := 0b1010
    sci  := 1.5e3       // 1500.0
    _ = dec; _ = hex; _ = oct; _ = bin; _ = sci
}

Dimensioni e intervalli dei tipi

Conoscere le dimensioni dei tipi previene i bug dovuti all'overflow:

  • int8: da -128 a 127
  • uint8: da 0 a 255
  • int16: da -32768 a 32767
  • int32: circa ±2,1 miliardi
  • int64: circa ±9,2 quintilioni

Usi math.MaxInt64 e costanti simili del package math per ottenere i limiti esatti.

rune e byte

rune e byte sono alias di tipo con un significato semantico:

  • byte = uint8 — usato per dati binari grezzi o ASCII
  • rune = int32 — usato per i punti di codice Unicode

Quando usa range su una stringa, Go restituisce valori rune, perfetti per lavorare con caratteri UTF-8 multibyte come le emoji.

Scelta del tipo corretto

Linee guida per scegliere i tipi numerici:

  • Scelga int come valore predefinito per contatori e indici
  • Usi float64 per i calcoli generici a virgola mobile
  • Usi int64 / uint64 per ID, timestamp e conteggi elevati
  • Usi int32 solo quando interagisce con API che lo richiedono
  • Eviti float32, a meno che non lavori con la grafica o con dati in cui lo spazio è limitato

Verifica rapida

Qual è il valore zero di una variabile string in Go?

Riepilogo: tipi predefiniti

I tipi predefiniti di Go forniscono una base solida:

  • Famiglia degli interi: int, int64, byte, rune
  • A virgola mobile: preferisca float64
  • string è composta da byte UTF-8 immutabili
  • bool con true/false
  • Ogni tipo ha un valore zero: nessuna sorpresa

Prossimo argomento: le costanti e il potente enumeratore iota.

Esercizio

Faccia una prova: dichiari una variabile rune contenente la lettera 'A' e una variabile byte contenente 65. Stampi entrambe: dovrebbero produrre lo stesso valore numerico. Provi poi a scorrere una breve stringa contenente un'emoji per osservare i valori rune in azione.

Domande Frequenti

La lezione «Tipi integrati di Go» è gratuita?

Sì — il testo completo di «Tipi integrati di Go» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Go Academy, passa a CoddyKit PRO. Il corso Go Academy include 4 lezioni in totale.

Cosa imparerò in «Tipi integrati di Go»?

int, float64, string, bool e i relativi valori zero Eserciti Go Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Go Academy?

Non è richiesta alcuna esperienza precedente. Go Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Tipi integrati di Go»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Go Academy?

Sì. Ogni lezione Go Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Dichiarare variabili in Go
  2. Tipi integrati di Go
  3. Costanti e iota
  4. Conversioni di tipo in Go
← Torna a Go Academy