English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In Go, i tagli sono più potenti, flessibili, comodi e leggeri rispetto agli array. I tagli sono sequenze di lunghezza variabile utilizzate per memorizzare elementi dello stesso tipo, non è permesso memorizzare elementi di tipo diverso nello stesso taglio. Nei tagli Go, è possibile utilizzareCompare()La funzione confronta due segmenti di byte uno con l'altroConfrontoQuesta funzione restituisce un valore intero che rappresenta se queste sezioni sono uguali o diverse, e questi valori sono:
Se il risultato è 0, allora slice_1 == slice_2.
Se il risultato è -1, allora slice_1 < slice_2.
Se il risultato è +1, allora slice_1 > slice_2.
La funzione è definita nel pacchetto bytes, quindi è necessario importare il pacchetto bytes nel programma per accedere alla funzione Compare.
Sintassi:
func Compare(slice_1, slice_2 []byte) int
Parliamo di questo concetto con un esempio:
// confrontare due slice di byte package main import ( "bytes" "fmt" ) func main() { // creare e inizializzare le slice di byte utilizzando la dichiarazione abbreviata slice_1 := []byte{'G', 'E', 'E', 'K', 'S'} slice_2 := []byte{'G', 'E', 'e', 'K', 'S'} // confrontare le slice // utilizzare la funzione Compare res := bytes.Compare(slice_1, slice_2) if res == 0 { fmt.Println("!..le slice sono uguali..!") } else { fmt.Println("!..le slice non sono uguali..!") } }
Output:
!..le slice non sono uguali..!
Esempio di confronto di due slice di byte:
package main import ( "bytes" "fmt" ) func main() { slice_1 := []byte{'A', 'N', 'M', 'O', 'P', 'Q'} slice_2 := []byte{'a', 'g', 't', 'e', 'q', 'm'} slice_3 := []byte{'A', 'N', 'M', 'O', 'P', 'Q'} slice_4 := []byte{'A', 'n', 'M', 'o', 'p', 'Q'} // visualizzare le slice fmt.Println("slice 1: ", slice_1) fmt.Println("slice 2: ", slice_2) fmt.Println("slice 3: ", slice_3) fmt.Println("slice 4: ", slice_4) // confrontare le slice, utilizzare Compare res1 := bytes.Compare(slice_1, slice_2) res2 := bytes.Compare(slice_1, slice_3) res3 := bytes.Compare(slice_1, slice_4) res4 := bytes.Compare(slice_2, slice_3) res5 := bytes.Compare(slice_2, slice_4) res6 := bytes.Compare(slice_2, slice_1) res7 := bytes.Compare(slice_3, slice_1) res8 := bytes.Compare(slice_3, slice_2) res9 := bytes.Compare(slice_3, slice_4) res10 := bytes.Compare(slice_4, slice_1) res11 := bytes.Compare(slice_4, slice_2) res12 := bytes.Compare(slice_4, slice_3) res13 := bytes.Compare(slice_4, slice_4) fmt.Println("\nRisultato 1:", res1) fmt.Println("Risultato 2:", res2) fmt.Println("Risultato 3:", res3) fmt.Println("Risultato 4:", res4) fmt.Println("Risultato 5:", res5) fmt.Println("Risultato 6:", res6) fmt.Println("Risultato 7:", res7) fmt.Println("Risultato 8:", res8) fmt.Println("Risultato 9:", res9) fmt.Println("Risultato 10:", res10) fmt.Println("Risultato 11:", res11) fmt.Println("Risultato 12:", res12) fmt.Println("Risultato 13:", res13) }
Output:
Taglio 1: [65 78 77 79 80 81] Taglio 2: [97 103 116 101 113 109] Taglio 3: [65 78 77 79 80 81] Taglio 4: [65 110 77 111 112 81] Risultato 1: -1 Risultato 2: 0 Risultato 3: -1 Risultato 4: 1 Risultato 5: 1 Risultato 6: 1 Risultato 7: 0 Risultato 8: -1 Risultato 9: -1 Risultato 10: 1 Risultato 11: -1 Risultato 12: 1 Risultato 13: 0