Sobes.tech
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ą.