结构体等于比较
来源:12-2 迷宫代码实现

onepiece_pro
2019-06-12
-
val := m[“key”]
val,ok := m[“key”]
如上述字典取值,可自由接受/不接收 第二个参数
那么对于 func (p point) at(gird [][]int) (int, bool) 函数,有没有方式可以不接收第二个返回参数?
map取值,接受/不接收 第二个参数是怎么实现的? -
对于结构体point:
type point struct {
i, j int
}
可以直接用 == 判断两个类型为point的变量是否相等。 是否因为golang会去比较结构体中的各个值? 若结构体中包含指针变量是否还能用 ==?
写回答
1回答
-
第一个问题,这个是系统的优势。它提供的函数能,但是我们不能。也就是那个map是特殊的实现,我们做不到这样。
第二个问题,结构体的相等就是每个字段判断相等。不过有指针字段的话,也只能判断指针是否指向同一个元素,不回去比较指针指向的值。
112019-06-30