¿Cómo verificar la igualdad de segmentos de bytes en Golang?

El segmento de lenguaje de Go es más poderoso, flexible y conveniente que una array y es una estructura de datos liviana. El segmento es una secuencia de longitud variable que almacena elementos de un tipo similar, no está permitido almacenar diferentes tipos de elementos en el mismo segmento.
En la porción de byes de Go, se le permite verificar la igualdad de las porciones con la ayuda de la función Equal() . Esta función devuelve verdadero si ambos sectores son iguales, o devuelve falso si ambos sectores no son iguales. Se define en el paquete de bytes, por lo que debe importar el paquete de bytes en su programa para acceder a la función Equals.

Sintaxis:

func Equal(slice_1, slice_1 []byte) bool

Aquí, verificamos la igualdad entre slice_1 y slice_2 y el tipo de retorno de esta función es bool. Discutamos este concepto con la ayuda de los ejemplos:

Ejemplo 1:

// Go program to illustrate how to
// check the equality of the slices
package main
  
import (
    "bytes"
    "fmt"
)
  
func main() {
  
    // Creating and initializing slices of bytes
    // Using shorthand declaration
  
    slice_1 := []byte{'A', 'N', 'M', 'A',
                      'P', 'A', 'A', 'W'}
      
    slice_2 := []byte{'A', 'N', 'M', 'A',
                      'P', 'A', 'A', 'W'}
  
    // Checking the equality of the slices
    // Using Equal function
    res := bytes.Equal(slice_1, slice_2)
      
    if res == true {
      
        fmt.Println("Slice_1 is equal to Slice_2")
    } else {
      
        fmt.Println("Slice_1 is not equal to Slice_2")
    }
  
}

Producción:

Slice_1 is equal to Slice_2

Ejemplo 2:

// Go program to illustrate how to
// check the equality of the slices
package main
  
import (
    "bytes"
    "fmt"
)
  
func main() {
  
    // Creating and initializing 
    // slices of bytes
    // Using shorthand declaration
    slice_1 := []byte{'A', 'N', 'M',
            'A', 'P', 'A', 'A', 'W'}
      
    slice_2 := []byte{'g', 'e', 'e', 'k', 's'}
      
    slice_3 := []byte{'A', 'N', 'M', 'A',
                      'P', 'A', 'A', 'W'}
  
    // Checking the equality of the slices
    // Using Equal function
    res1 := bytes.Equal(slice_1, slice_2)
    res2 := bytes.Equal(slice_1, slice_3)
    res3 := bytes.Equal(slice_2, slice_3)
    res4 := bytes.Equal([]byte("GeeksforGeeks"),
                        []byte("GeeksforGeeks"))
    res5 := bytes.Equal([]byte("Geeks"), []byte("GFG"))
    res6 := bytes.Equal(slice_1, []byte("P"))
  
    // Displaying results
    fmt.Println("Result 1:", res1)
    fmt.Println("Result 2:", res2)
    fmt.Println("Result 3:", res3)
    fmt.Println("Result 4:", res4)
    fmt.Println("Result 5:", res5)
    fmt.Println("Result 6:", res6)
  
}

Producción:

Result 1: false
Result 2: true
Result 3: false
Result 4: true
Result 5: false
Result 6: false

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *