Что выведет: type Point struct { X, Y int }; p := Point{1, 2}; fmt.Println(p == Point{1, 2})?

Junior
127 просмотров
AFK Offer AI

Выведет true. Структуры с comparable полями сравниваются поэлементно. Point{1,2} == Point{1,2} потому что X==X и Y==Y. Но: Point{X:1} == Point{X:1, Y:0} тоже true — zero value Y == 0 в обоих. Если добавить поле []int — struct станет несравнимым и == не скомпилируется. Указатели сравниваются по адресу, не по содержимому.

Следующий вопрос

Как sync.Once реализован внутри?