Sobes.tech
Junior — Middle

Se poate face comparație între diferite structuri de date?

sobes.tech AI

Răspuns de la AI

În Go, se pot compara structuri de date dacă toate câmpurile lor sunt comparabile. De exemplu, structurile compuse din tipuri de bază (int, string, bool etc.) pot fi comparate direct folosind operatorul ==.

Cu toate acestea, dacă o structură conține câmpuri care nu pot fi comparate (de exemplu, slices, hărți, funcții), compararea directă a structurii va genera o eroare de compilare.

Exemplu de comparare a structurilor:

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
}

Dacă structura conține câmpuri care nu pot fi comparate, cum ar fi slices, trebuie implementată o funcție proprie de comparare care parcurge elementele și le compară unul câte unul.