Golang reflect.DeepEqual()函数及示例

Golang reflect.DeepEqual()函数及示例

Go语言提供了内置支持运行时反射的实现,借助反射包使程序能够操作任意类型的对象。Golang中的 reflect.DeepEqual() 函数用于检查x和y是否“深度相等”。要访问此函数,需要在程序中导入反射包。

语法:

func DeepEqual(x,y interface{}) bool

参数: 此函数使用两个带有任意类型的参数,即x和y。
返回值: 此函数返回布尔值。

下面的示例说明了在Golang中使用以上方法的用法:

示例1:

// Golang程序示例
// reflect.DeepEqual() 函数
package main

import (
    "fmt"
    "reflect"
)

// 主函数
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用于检查两个接口是否相等
    res1 := reflect.DeepEqual(map_1, map_2)
    fmt.Println("Map1是否等于Map2: ", res1)
} 

输出:

Map1是否等于Map2:  true

示例2:

// Golang程序示例
// reflect.DeepEqual() 函数
package main

import (
    "fmt"
    "reflect"
)

// 主函数
func main() {

    src := reflect.ValueOf([]int{10, 20, 32})
    dest := reflect.ValueOf([]int{1, 2, 3})

    cnt := reflect.Copy(dest, src)
    cnt+=1

    // DeepEqual用于检查两个接口是否相等
    res1 := reflect.DeepEqual(src, dest )
    fmt.Println("dest是否等于src: ", res1)
} 

输出:

dest是否等于src:  false

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程