Sobes.tech
Junior — Middle

Lze porovnávat různé datové struktury?

sobes.tech AI

Odpověď od AI

V jazyce Go je možné porovnávat datové struktury, pokud jsou všechny jejich pole porovnatelné. Například struktury složené z základních typů (int, string, bool atd.) lze přímo porovnat pomocí operátoru ==.

Pokud však struktura obsahuje pole, která nelze porovnat (například slices, mapy, funkce), pak přímé porovnání struktury způsobí chybu kompilace.

Příklad porovnání 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
}

Pokud struktura obsahuje pole, která nelze porovnat, například slices, je nutné implementovat vlastní funkci porovnání, která projde prvky a porovná je po jednom.