Sobes.tech
Junior — Middle

Je možné porovnávať rôzne dátové štruktúry?

sobes.tech AI

Odpoveď od AI

V jazyku Go je možné porovnávať dátové štruktúry, ak sú všetky ich polia porovnateľné. Napríklad štruktúry skladajúce sa zo základných typov (int, string, bool atď.) je možné priamo porovnať pomocou operátora ==.

Ak však štruktúra obsahuje polia, ktoré nie sú porovnateľné (napríklad slices, mapy, funkcie), priame porovnanie štruktúry spôsobí chybu kompilácie.

Príklad porovnania štruktúr:

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
}

Ak štruktúra obsahuje polia, ktoré nie sú porovnateľné, napríklad slices, je potrebné implementovať vlastnú funkciu na porovnávanie, ktorá prejde prvky a porovná ich po jednom.