DeepEqual è un rilassamento ricorsivo dell'operatore == di Go.
DeepEqual riporta se xey sono "profondamente uguali", definito come segue. Due valori di tipo identico sono profondamente uguali se si applica uno dei seguenti casi. I valori di tipi distinti non sono mai profondamente uguali.
I valori di matrice sono profondamente uguali quando i loro elementi corrispondenti sono profondamente uguali.
I valori di Struct sono profondamente uguali se i loro campi corrispondenti, sia esportati che non esportati, sono profondamente uguali.
I valori di Func sono profondamente uguali se entrambi sono nulli; altrimenti non sono profondamente uguali.
I valori dell'interfaccia sono profondamente uguali se contengono valori concreti profondamente uguali.
I valori della mappa sono profondamente uguali se sono lo stesso oggetto mappa o se hanno la stessa lunghezza e le loro chiavi corrispondenti (abbinate usando Go uguaglianza) mappano a valori profondamente uguali.
I valori del puntatore sono profondamente uguali se sono uguali usando l'operatore Go == o se indicano valori profondamente uguali.
I valori di sezione sono profondamente uguali quando sono vere tutte le seguenti condizioni: sono entrambe nulle o entrambe non nulle, hanno la stessa lunghezza e indicano entrambe la stessa voce iniziale dello stesso array sottostante (ovvero & x [0 ] == & y [0]) o i loro elementi corrispondenti (fino alla lunghezza) sono profondamente uguali. Si noti che una sezione vuota non nulla e una sezione zero (ad esempio, [] byte {} e [] byte (zero)) non sono profondamente uguali.
Altri valori - numeri, bool, stringhe e canali - sono profondamente uguali se sono uguali usando l'operatore Go ==.
==
operatore è definito in Vai solo per alcuni tipi, quindi anche questa domanda è legittima.