Sobes.tech
Junior — Middle

Може ли да се врши поређење различитих структура података?

sobes.tech АИ

Одговор од АИ

U Go-u, možete porediti strukture podataka ako su sva njihova polja porediva. Na primer, strukture koje se sastoje od osnovnih tipova (int, string, bool itd.) mogu se direktno porediti pomoću operatora ==.

Međutim, ako struktura sadrži polja koja nisu porediva (npr. slices, mape, funkcije), direktno poređenje strukture će izazvati grešku pri kompilaciji.

Primer poređenja struktura:

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
}

Ako struktura sadrži polja koja nisu porediva, na primer slices, potrebno je implementirati sopstvenu funkciju za poređenje koja će proći kroz elemente i uporediti ih pojedinačno.