结构体等于比较

来源:12-2 迷宫代码实现

onepiece_pro

2019-06-12

  1. val := m[“key”]
    val,ok := m[“key”]
    如上述字典取值,可自由接受/不接收 第二个参数
    那么对于 func (p point) at(gird [][]int) (int, bool) 函数,有没有方式可以不接收第二个返回参数?
    map取值,接受/不接收 第二个参数是怎么实现的?

  2. 对于结构体point:
    type point struct {
    i, j int
    }
    可以直接用 == 判断两个类型为point的变量是否相等。 是否因为golang会去比较结构体中的各个值? 若结构体中包含指针变量是否还能用 ==?

写回答

1回答

ccmouse

2019-06-15

第一个问题,这个是系统的优势。它提供的函数能,但是我们不能。也就是那个map是特殊的实现,我们做不到这样。

第二个问题,结构体的相等就是每个字段判断相等。不过有指针字段的话,也只能判断指针是否指向同一个元素,不回去比较指针指向的值。

1
1
onepiece_pro
非常感谢!
2019-06-30
共1条回复

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程