00
:
00
:
00
:
00
•Corso SEO AI - Usa SEOEMAIL al checkout per il 30% di sconto

Operatori di Assegnazione in Go

Gli operatori di assegnazione in Go permettono di assegnare valori alle variabili e di combinare l’assegnazione con operazioni aritmetiche o bitwise.

Operatore di Assegnazione Base

L’operatore = assegna un valore a una variabile già dichiarata:

var x int
x = 10

var nome string
nome = "Go"

Dichiarazione Breve (:=)

L’operatore := dichiara e assegna una variabile in un solo passaggio. Può essere usato solo all’interno di funzioni:

func main() {
    x := 10           // int
    nome := "Go"      // string
    attivo := true     // bool
    pi := 3.14        // float64
}

Operatori di Assegnazione Composti

Questi operatori combinano un’operazione con l’assegnazione:

Operatore Equivalente Descrizione
+= x = x + y Addizione e assegnazione
-= x = x - y Sottrazione e assegnazione
*= x = x * y Moltiplicazione e assegnazione
/= x = x / y Divisione e assegnazione
%= x = x % y Modulo e assegnazione
func main() {
    x := 10

    x += 5   // x = 15
    x -= 3   // x = 12
    x *= 2   // x = 24
    x /= 4   // x = 6
    x %= 4   // x = 2

    fmt.Println(x) // 2
}

Operatori di Assegnazione Bitwise

Operatore Equivalente Descrizione
&= x = x & y AND bitwise e assegnazione
|= x = x | y OR bitwise e assegnazione
^= x = x ^ y XOR bitwise e assegnazione
<<= x = x << y Shift sinistro e assegnazione
>>= x = x >> y Shift destro e assegnazione
func main() {
    x := 12  // binario: 1100

    x &= 10  // 1100 & 1010 = 1000 → x = 8
    x |= 3   // 1000 | 0011 = 1011 → x = 11
    x ^= 5   // 1011 ^ 0101 = 1110 → x = 14
    x <<= 1  // 1110 << 1 = 11100 → x = 28
    x >>= 2  // 11100 >> 2 = 111 → x = 7
}

Assegnazione Multipla

Go permette di assegnare piĂą variabili sulla stessa riga:

func main() {
    a, b, c := 1, 2, 3

    // Swap di variabili senza variabile temporanea
    a, b = b, a
    fmt.Println(a, b) // 2 1
}

Assegnazione con Valori di Ritorno

valore, errore := strconv.Atoi("42")
if errore != nil {
    fmt.Println("Errore:", errore)
}

// Ignora un valore con _
_, err := fmt.Println("ciao")

Conclusione

Go offre un set completo di operatori di assegnazione che rendono il codice conciso e leggibile. La distinzione tra = (assegnazione) e := (dichiarazione breve) è una delle caratteristiche più importanti da padroneggiare per scrivere codice Go idiomatico.