English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La struttura o struct in Golang è un tipo definito dall'utente, che ci permette di creare un insieme di elementi di diversi tipi in un singolo unità. Qualsiasi entità reale che ha un insieme di attributi o campi può essere rappresentata come una struttura. Questo concetto è spesso confrontato con le classi nell'orientamento a oggetti. Può essere chiamato classe leggera, non supporta l'ereditarietà, ma supporta la composizione.
In Go, è possibile utilizzareOperatore ==oMetodo DeeplyEqual()Confronta due tipi di struttura identici che contengono valori di campo uguali. Se le strutture sono identiche (in termini di valori di campo), l'operatore e i metodi restituiscono true; altrimenti, restituiscono false. E se le variabili confrontate appartengono a strutture diverse, il compilatore genera un errore. Facciamo un esempio per discutere questo concetto:
Attenzione:
Confronta le strutture utilizzando l'operatore == //Concetto di uguaglianza delle strutture package main //Utilizzo dell'operatore == //Creazione di una struttura type Author struct { name string branch string language string Particles int } func main() { //Struttura autore a1 := Author{ language: \ Particles: 38, } language: \ Particles: 38, } language: \ Particles: 38, } //Verifica l'uguaglianza di a1 e a2 utilizzando l'operatore == if a1 == a2 { fmt.Println("La variabile a1 è uguale alla variabile a2") } fmt.Println("La variabile a1 non è uguale alla variabile a2") } if a2 == a3 { fmt.Println("La variabile a2 è uguale alla variabile a3") } fmt.Println("La variabile a2 non è uguale alla variabile a3") } }
Output:
La variabile a1 è uguale alla variabile a2 La variabile a2 non è uguale alla variabile a3
//Utilizzo del metodo DeepEqual() package main import ( "fmt" "reflect" } //Creazione di una struttura type Author struct { name string branch string language string Particles int } func main() { //Definizione variabili //Struttura autore a1 := Author{ name: \ language: \ Particles: 48, } name: \ language: \ Particles: 48, } language: \ Particles: 48, } //Confronta a1 e a2, utilizzando il metodo DeepEqual() fmt.Println("a1 uguale a2?: ", reflect.DeepEqual(a1, a2)) //Confronta a2 e a3, utilizzando il metodo DeepEqual() fmt.Println("a2 uguale a3?: ", reflect.DeepEqual(a2, a3)) }
Output:
a1 uguale a2?: vero a2 è uguale a a3: false