Sobes.tech
Junior — Middle

Lehetséges különböző adatszerkezetek összehasonlítása?

sobes.tech MI

Válasz az MI-től

Go-ban adatstruktúrákat össze lehet hasonlítani, ha minden mezőjük összehasonlítható. Például, az alap típusokból (int, string, bool stb.) álló struktúrákat közvetlenül össze lehet hasonlítani a == operátorral.

Azonban, ha a struktúra olyan mezőket tartalmaz, amelyek nem összehasonlíthatók (például szeletek, térképek, függvények), akkor a struktúra közvetlen összehasonlítása fordítási hibát eredményez.

Példa struktúrák összehasonlítására:

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
}

Ha a struktúra olyan mezőket tartalmaz, amelyek nem összehasonlíthatók, például szeleteket, akkor saját összehasonlító függvényt kell írni, amely végigmegy az elemeken és összehasonlítja azokat.