Función reflect.DeepEqual() en Golang con ejemplos

El lenguaje Go proporciona una implementación de soporte incorporada de la reflexión en tiempo de ejecución y permite que un programa manipule objetos con tipos arbitrarios con la ayuda del paquete de reflexión. La función reflect.DeepEqual() en Golang se usa para verificar si x e y son «profundamente iguales» o no. Para acceder a esta función, es necesario importar el paquete reflect en el programa.

Sintaxis: 

func DeepEqual(x, y interfaz{}) bool

Parámetros: Esta función toma dos parámetros con valor de cualquier tipo, es decir, x, y.
Valor devuelto: esta función devuelve el valor booleano. 
 

Los siguientes ejemplos ilustran el uso del método anterior en Golang:

Ejemplo 1: 

Go

// Golang program to illustrate
// reflect.DeepEqual() Function
 
package main
 
import (
    "fmt"
    "reflect"
)
 
 
// Main function
func main() {
 
    map_1 := map[int]string{
   
        200: "Anita",
        201: "Neha",
        203: "Suman",
        204: "Robin",
        205: "Rohit",
    }
    map_2 := map[int]string{
   
        200: "Anita",
        201: "Neha",
        203: "Suman",
        204: "Robin",
        205: "Rohit",
    }
     
    // DeepEqual is used to check
    // two interfaces are equal or not
    res1 := reflect.DeepEqual(map_1, map_2)
    fmt.Println("Is Map 1 is equal to Map 2: ", res1)
}

Producción: 

Is Map 1 is equal to Map 2:  true

Ejemplo 2: 

Go

// Golang program to illustrate
// reflect.DeepEqual() Function
 
package main
 
import (
    "fmt"
    "reflect"
)
 
 
// Main function
func main() {
 
    src := reflect.ValueOf([]int{10, 20, 32})
    dest := reflect.ValueOf([]int{1, 2, 3})
     
    cnt := reflect.Copy(dest, src)
    cnt+=1
     
    // DeepEqual is used to check
    // two interfaces are equal or not
    res1 := reflect.DeepEqual(src, dest )
    fmt.Println("Is dest is equal to src: ", res1)
}

Producción: 

Is dest is equal to src:  false

Publicación traducida automáticamente

Artículo escrito por SHUBHAMSINGH10 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 *