go 判断两个 slice/struct/map 是否相等

2019-12-20  本文已影响0人  caoxinyiyi

可以通过 reflect.DeepEqual 比较两个 slice/struct/map 是否相等。【亲测有效,也看了底层了源码】

package main
 
import (
    "fmt"
    "reflect"
)
 
type A struct {
    s string
}
 
func main() {
 
    a1 := A{s: "abc"}
    a2 := A{s: "abc"}
    if reflect.DeepEqual(a1, a2) {
        fmt.Println(a1, "==", a2)
    }
 
    b1 := []int{1, 2}
    b2 := []int{1, 2}
    if reflect.DeepEqual(b1, b2) {
        fmt.Println(b1, "==", b2)
    }
 
    c1 := map[string]int{"a": 1, "b": 2}
    c2 := map[string]int{"a": 1, "b": 2}
    if reflect.DeepEqual(c1, c2) {
        fmt.Println(c1, "==", c2)
    }

上一篇 下一篇

猜你喜欢

热点阅读