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.