structA 和 structB 如何判断是否相等
需要用到 反射 reflect.DeepEqual() 进行对比
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)
}
//map
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)
}
}
执行结果
{abc} == {abc}
[1 2] == [1 2]
map[a:1 b:2] == map[a:1 b:2]
本帖已被设为精华帖!
本帖由系统于 2年前 自动加精