Sobes.tech
Junior — Middle

É possível fazer comparação entre diferentes estruturas de dados?

sobes.tech IA

Resposta da IA

Em Go, é possível comparar estruturas de dados se todos os seus campos forem comparáveis. Por exemplo, estruturas compostas por tipos básicos (int, string, bool, etc.) podem ser comparadas diretamente usando o operador ==.

No entanto, se uma estrutura contiver campos que não podem ser comparados (por exemplo, slices, mapas, funções), a comparação direta da estrutura resultará em um erro de compilação.

Exemplo de comparação de estruturas:

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
}

Se a estrutura contiver campos não comparáveis, como slices, será necessário implementar uma função própria de comparação que percorra os elementos e os compare um a um.