DeepEqual es una relajación recursiva del operador Go's ==.
DeepEqual informa si xey son "profundamente iguales", definidos de la siguiente manera. Dos valores de tipo idéntico son profundamente iguales si se aplica uno de los siguientes casos. Los valores de distintos tipos nunca son profundamente iguales.
Los valores de matriz son profundamente iguales cuando sus elementos correspondientes son profundamente iguales.
Los valores de estructura son profundamente iguales si sus campos correspondientes, tanto exportados como no exportados, son profundamente iguales.
Los valores de func son profundamente iguales si ambos son nulos; de lo contrario no son profundamente iguales.
Los valores de la interfaz son profundamente iguales si tienen valores concretos profundamente iguales.
Los valores del mapa son profundamente iguales si son el mismo objeto de mapa o si tienen la misma longitud y sus teclas correspondientes (emparejadas usando la igualdad Go) se asignan a valores profundamente iguales.
Los valores del puntero son profundamente iguales si son iguales usando el operador Go == o si apuntan a valores profundamente iguales.
Los valores de corte son profundamente iguales cuando se cumple todo lo siguiente: ambos son nulos o ambos no nulos, tienen la misma longitud y apuntan a la misma entrada inicial de la misma matriz subyacente (es decir, & x [0 ] == & y [0]) o sus elementos correspondientes (hasta la longitud) son profundamente iguales. Tenga en cuenta que un segmento vacío no nulo y un segmento nulo (por ejemplo, [] byte {} y [] byte (nil)) no son profundamente iguales.
Otros valores - números, bools, cadenas y canales - son profundamente iguales si son iguales usando el operador Go's ==.
==
operador se define en Ir solo para algunos tipos, por lo tanto, esta pregunta también es legítima.