DeepEqual é um relaxamento recursivo do operador Go ==.
O DeepEqual relata se xey são "profundamente iguais", definidos da seguinte maneira. Dois valores do tipo idêntico são profundamente iguais se um dos seguintes casos se aplicar. Valores de tipos distintos nunca são profundamente iguais.
Os valores da matriz são profundamente iguais quando seus elementos correspondentes são profundamente iguais.
Os valores de estrutura são profundamente iguais se seus campos correspondentes, exportados e não exportados, forem profundamente iguais.
Os valores de função são profundamente iguais se ambos forem nulos; caso contrário, eles não são profundamente iguais.
Os valores da interface são profundamente iguais se mantiverem valores concretos profundamente iguais.
Os valores do mapa são profundamente iguais se tiverem o mesmo objeto de mapa ou se tiverem o mesmo comprimento e suas chaves correspondentes (correspondidas usando a igualdade Go) são mapeadas para valores profundamente iguais.
Os valores do ponteiro são profundamente iguais se forem iguais usando o operador Go's == ou se apontarem para valores profundamente iguais.
Os valores das fatias são profundamente iguais quando tudo o que se segue é verdadeiro: ambos são nulos ou não são nulos, têm o mesmo comprimento e apontam para a mesma entrada inicial da mesma matriz subjacente (ou seja, x [0 ] == & y [0]) ou seus elementos correspondentes (até o comprimento) são profundamente iguais. Observe que uma fatia vazia não nula e uma fatia nula (por exemplo, [] byte {} e [] byte (nil)) não são profundamente iguais.
Outros valores - números, bools, strings e canais - são profundamente iguais se forem iguais usando o operador Go's ==.
==
operador é definido no Go apenas para alguns tipos; portanto, essa pergunta também é legítima.