Sobes.tech
Junior — Middle

È possibile confrontare diverse strutture dati?

sobes.tech AI

Risposta dell'AI

In Go, è possibile confrontare le strutture dati se tutti i loro campi sono confrontabili. Ad esempio, le strutture composte da tipi di base (int, string, bool, ecc.) possono essere confrontate direttamente usando l'operatore ==.

Tuttavia, se una struttura contiene campi che non possono essere confrontati (ad esempio, slices, mappe, funzioni), il confronto diretto della struttura genererà un errore di compilazione.

Esempio di confronto di strutture:

package main
import "fmt"

type Person struct {
    Name string
    Age  int
}

func main() {
    p1 := Person{Name: "Alice", Age: 30}
    p2 := Person{Name: "Alice", Age: 30}
    p3 := Person{Name: "Bob", Age: 25}

    fmt.Println(p1 == p2) // true
    fmt.Println(p1 == p3) // false
}

Se la struttura contiene campi non confrontabili, come slices, è necessario implementare una funzione di confronto personalizzata che percorra gli elementi e li confronti uno ad uno.