English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Golang 基础教程

Golang 控制语句

Golang 函数 & 方法

Golang 结构体

Golang 切片 & 数组

Golang 字符串(String)

Golang 指针

Golang 接口

Concurrencia de Golang

Excepciones (Error) de Golang

Misceláneos de Golang

Comparación de cortes del lenguaje Go

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