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}