深度比较:reflect.DeepEqual

本文介绍reflect.DeepEqual使用的几个场景。

比较slice

package main

import (
    "fmt"
    "reflect"
)

func main() {
    s1 := []int{1, 2, 3}
    s2 := []int{1, 2, 3}
    s3 := []int{3, 1, 2}
    fmt.Println(reflect.DeepEqual(s1, s2)) //true
    fmt.Println(reflect.DeepEqual(s1, s3)) //false
    //fmt.Println(s1 == s2) 编译报错
}

比较map

package main

import (
    "fmt"
    "reflect"
)

func main() {
    m1 := map[string]bool{"dog": true, "cat": false}
    m2 := map[string]bool{"cat": false, "dog": true}
    m3 := map[string]bool{"cat": false, "dog": false}
    fmt.Println(reflect.DeepEqual(m1, m2)) //true
    fmt.Println(reflect.DeepEqual(m1, m3)) //false
    //fmt.Println(m1 == m2) 编译报错
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容