Avatar ·

Como comparar duas structs, slices ou maps em Go por igualdade?

Olá a todos! Comecei a estudar Go recentemente e me deparei com um problema ao comparar tipos de dados complexos. Estou tentando comparar duas structs, dois slices e dois maps, mas estou obtendo resultados inesperados. Aqui está um exemplo de código que não funciona: ```go package main import "fmt" type Person struct { Name string Age int } func main() { // Comparação de structs p1 := Person{Name: "Alice", Age: 30} p2 := Person{Name: "Alice", Age: 30} fmt.Println("Structs são iguais?", p1 == p2) // Exibe true, mas nem sempre é assim // Comparação de slices slice1 := []int{1, 2, 3} slice2 := []int{1, 2, 3} // fmt.Println(slice1 == slice2) // Erro de compilação: slice can only be compared to nil // Comparação de maps map1 := map[string]int{"a": 1, "b": 2}