GO语言101问(5)

1.下面代码能否通过编译

func main() {
	sn1 := struct {
		age int
		name string
	}{age : 11, name: "qq"}

	sn2 := struct {
		age int
		name string
	}{age : 11, name: "qq"}
	
	if sn1 == sn2 {
		fmt.Println("sn1 = = sn2")
	}
	
	sm1 := struct {
		age int
		m map[string]string
	}{age:11, m: map[string]string{"a": "1"}}

	sm2 := struct {
		age int
		m map[string]string
	}{age:11, m: map[string]string{"a": "1"}}

	if sm1 == sm2 {
		fmt.Println("sm1 = = sm2")
	}
}

知识点:map类型不能进行比较,因此sm1和sm2比较不能通过编译。

  • 结构体只能比较是否相等,不能比较大小
  • 相同类型的结构体才能比较
  • 如果struct的所有成员都是可以比较的就可以通过==或!=进行比较是否相等。(切片、map、函数不能比较)

猜你喜欢

转载自blog.csdn.net/random_w/article/details/102925833