¿Cómo comparar dos structs, slices o maps en Go por igualdad?
¡Hola a todos! Acabo de empezar a aprender Go y me encontré con un problema al comparar tipos de datos complejos. Estoy intentando comparar dos structs, dos slices y dos maps, pero obtengo resultados inesperados.
Aquí hay un ejemplo de código que no funciona:
```go
package main
import "fmt"
type Person struct {
Name string
Age int
}
func main() {
// Comparación de structs
p1 := Person{Name: "Alice", Age: 30}
p2 := Person{Name: "Alice", Age: 30}
fmt.Println("¿Los structs son iguales?", p1 == p2) // Imprime true, pero no siempre es así
// Comparación de slices
slice1 := []int{1, 2, 3}
slice2 := []int{1, 2, 3}
// fmt.Println(slice1 == slice2) // Error de compilación: slice solo se puede comparar con nil
// Comparación de maps
map1 := map[string]int{"a": 1, "b": 2}
map2 := map[string]int{"a": 1, "b": 2}
// fmt.Println(map1 == map2) // Error de compilación: map solo se puede comparar con nil
}
```
Entiendo que para slices y maps el operador `==` no funciona,