Junior — Middle
Ar galima palyginti skirtingas duomenų struktūras?
sobes.tech AI
Atsakymas iš AI
Go kalboje galima lyginti duomenų struktūras, jei visi jų laukai yra lyginami. Pavyzdžiui, struktūras, sudarytas iš pagrindinių tipų (int, string, bool ir kt.), galima tiesiogiai lyginti naudojant operatorių ==.
Tačiau, jei struktūra turi laukų, kurie nėra lyginami (pvz., slices, žemėlapiai, funkcijos), tada tiesioginis struktūros lyginimas sukels kompiliatoriaus klaidą.
Struktūrų lyginimo pavyzdys:
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
}
Jei struktūra turi laukų, kurie nėra lyginami, reikės sukurti savo lyginimo funkciją, kuri pereis per elementus ir juos palygins po vieną.