如何比较对象内容是否一样呢,譬如map或者struct。 通过自己编写的比较方法就是遍历属性比较,这个效率比较高,其实golang提供一个通用的反射方式,看下面一个maop比较的例子

func main() {

    m1:=map[string]int{"a":1,"b":2,"c":3}
    m2:=map[string]int{"a":1,"c":3,"b":2}
    fmt.Println("reflect.DeepEqual(m1,m2) = ",reflect.DeepEqual(m1,m2))
}

输出结果如下

reflect.DeepEqual(m1,m2) =  true

如果是struct也是一样的


import (
"fmt"
"reflect"
)

type S struct {
    a, b, c string
}

func main() {
    x := S{"a", "b", "c"}
    y := S{"a", "b", "c"}
    fmt.Println(reflect.DeepEqual(x, y))
}

结果如下

true

results matching ""

    No results matching ""