如果是相同的无复杂类型的结构体创建的对象 可以直接使用 == 对比值和指针

简单类型
可排序的数据类型
整型Integer
浮点型Floating-point
字符串String

可以比较的数据类型
除了上述三种外,还有
Boolean,
Complex,
Pointer,
Channel,
Interface
Array

复杂类型 不可比较的数据类型
Slice
Map
Function
 

type User struct {
	age  int
	name string
}

func main() {
	user := User{
		1,
		"d",
	}
	user2 := User{
		1,
		"d",
	}
	fmt.Println(user == user2)  //打印的结果是true 会去自动对比内部的属性是否相等
	//但是如果结构体内部含有map,slice,Function 使用==比较编译会报错
}

如果不是同一个结构体 创建的两个对象 两个struct可以相互转换,且不包含不可比较的成员变量,转换成相同类型后可以使用==操作符
示例

type USER struct {
	age  int
	name string
	u    Name
}
type Name struct {
	a string
}
type USER2 struct {
	age  int
	name string
	u    Name
}

func main() {
	user := USER{
		1,
		"d",
		Name{""},
	}
	user3 := USER2{
		1,
		"d",
		Name{""},
	}
	user2 := USER(user3)
	fmt.Println(user2 == user) //编译通过 打印结果是true
}