==?Структуры можно сравнивать оператором == только если все их поля сравнимы. Если в структуре есть поле типа слайс, map или функция - сравнение через == невозможно (ошибка компиляции). Структура из примитивов (int, string, bool, указатели на сравниваемые типы) сравнима. Для сложных структур можно реализовать свой метод сравнения.
type A struct{ X int }
a, b := A{1}, A{1}
fmt.Println(a == b) // true
type B struct{ S []int }
// b1 == b2 // ошибка компиляции