English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En el lenguaje Go, los cortes son más poderosos, flexibles, convenientes y ligeros que los arreglos. Los cortes son secuencias de longitud variable que se utilizan para almacenar elementos del mismo tipo, no se permite almacenar elementos de diferentes tipos en el mismo corte. En los cortes de Go, se puede usarCompare()La función compara dos cortes de tipo byte entre síComparar. Esta función devuelve un valor entero que indica si estos cortes son iguales o no, y estos valores son:
Si el resultado es 0, entonces slice_1 == slice_2.
Si el resultado es-1, si slice_1 <slice_2.
Si el resultado es+1, si slice_1> slice_2.
Esta función está definida en el paquete bytes, por lo tanto, debe importar el paquete bytes en su programa para acceder a la función Compare.
Sintaxis:
func Compare(slice_1, slice_2 []byte) int
Vamos a discutir este concepto con un ejemplo:
//Comparar dos cortes de bytes package main import ( "bytes" "fmt" ) func main() { //Crear e inicializar un corte de bytes usando declaraciones abreviadas slice_1 := []byte{'G', 'E', 'E', 'K', 'S'} slice_2 := []byte{'G', 'E', 'e', 'K', 'S'} //Comparar cortes //Usar la función Compare res := bytes.Compare(slice_1, slice_2) if res == 0 { fmt.Println("!..Los cortes son iguales..!") } else { fmt.Println("!..Los cortes no son iguales..!") } }
Salida:
!..Los cortes no son iguales..!
Comparar dos cortes de bytes ejemplo:
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'} //Mostrar cortes fmt.Println("Cortar 1: ", slice_1) fmt.Println("Cortar 2: ", slice_2) fmt.Println("Cortar 3: ", slice_3) fmt.Println("Cortar 4: ", slice_4) //Comparar cortes, usando 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("\nResultado: 1: ", res1) fmt.Println("Resultado: 2: ", res2) fmt.Println("Resultado: 3: ", res3) fmt.Println("Resultado: 4: ", res4) fmt.Println("Resultado: 5: ", res5) fmt.Println("Resultado: 6: ", res6) fmt.Println("Resultado: 7: ", res7) fmt.Println("Resultado: 8: ", res8) fmt.Println("Resultado: 9: ", res9) fmt.Println("Resultado: 10: ", res10) fmt.Println("Resultado: 11: ", res11) fmt.Println("Resultado: 12: ", res12) fmt.Println("Resultado: 13: ", res13) }
Salida:
Cortar 1:65 78 77 79 80 81] Cortar 2:97 103 116 101 113 109] Cortar 3:65 78 77 79 80 81] Cortar 4:65 110 77 111 112 81] Resultados 1: -1 Resultados 2: 0 Resultados 3: -1 Resultados 4: 1 Resultados 5: 1 Resultados 6: 1 Resultados 7: 0 Resultados 8: -1 Resultados 9: -1 Resultados 10: 1 Resultados 11: -1 Resultados 12: 1 Resultados 13: 0