Sobes.tech
Junior — Middle

Czy można porównywać różne struktury danych?

sobes.tech AI

Odpowiedź od AI

W Go można porównywać struktury danych, jeśli wszystkie ich pola są porównywalne. Na przykład struktury składające się z typów podstawowych (int, string, bool itp.) można porównywać bezpośrednio za pomocą operatora ==.

Jednak jeśli struktura zawiera pola, które nie mogą być porównywane (np. slices, mapy, funkcje), to bezpośrednie porównanie struktury spowoduje błąd kompilacji.

Przykład porównania struktur:

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
}

Jeśli struktura zawiera pola, które nie są porównywalne, np. slices, konieczne jest zaimplementowanie własnej funkcji porównującej, która przejdzie przez elementy i porówna je element po elemencie.