Sobes.tech
Назад к вопросам
Junior — Middle
80

Можно ли осуществлять сравнение различных структур данных?

Ответ от нейросети

sobes.tech AI

В Go можно сравнивать структуры данных, если все их поля сравнимы. Например, структуры, состоящие из базовых типов (int, string, bool и т.д.) можно сравнивать напрямую с помощью оператора ==.

Однако, если структура содержит поля, которые нельзя сравнивать (например, срезы, карты, функции), то прямое сравнение структуры вызовет ошибку компиляции.

Пример сравнения структур:

package main
import "fmt"

type Person struct {
    Name string
    Age  int
}

func main() {
    p1 := Person{Name: "Alice", Age: 30}
    p2 := Person{Name: "Alice", Age: 30}
    p3 := Person{Name: "Bob", Age: 25}

    fmt.Println(p1 == p2) // true
    fmt.Println(p1 == p3) // false
}

Если структура содержит несравнимые поля, например срезы, то для сравнения нужно реализовать собственную функцию сравнения, перебирая элементы и сравнивая их поэлементно.