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.