DeepEqual to rekurencyjna relaksacja operatora Go = =.
DeepEqual informuje, czy xiy są „głęboko równe”, zdefiniowane w następujący sposób. Dwie wartości tego samego typu są głęboko równe, jeśli ma zastosowanie jeden z następujących przypadków. Wartości różnych typów nigdy nie są głęboko równe.
Wartości tablic są głęboko równe, gdy odpowiadające im elementy są głęboko równe.
Wartości struktur są głęboko równe, jeśli odpowiadające im pola, zarówno eksportowane, jak i nie eksportowane, są głęboko równe.
Wartości Func są głęboko równe, jeśli oba są równe zero; w przeciwnym razie nie są głęboko równi.
Wartości interfejsów są głęboko równe, jeśli zawierają głęboko równe konkretne wartości.
Wartości map są głęboko równe, jeśli są tym samym obiektem mapy lub mają taką samą długość, a odpowiadające im klucze (dopasowane przy użyciu Go równości) mapują na głęboko równe wartości.
Wartości wskaźnika są głęboko równe, jeśli są równe za pomocą operatora Go == lub jeśli wskazują na głęboko równe wartości.
Wartości wycinków są głęboko równe, gdy spełnione są wszystkie poniższe warunki: oba są zerowe lub oba nie-zerowe, mają tę samą długość i albo wskazują na ten sam początkowy wpis tej samej podstawowej tablicy (to jest, & x [0 ] == i y [0]) lub odpowiadające im elementy (do długości) są głęboko równe. Zauważ, że pusty pusty plasterek i zerowy plasterek (na przykład [] bajt {} i [] bajt (zero)) nie są głęboko równe.
Inne wartości - liczby, boole, ciągi i kanały - są głęboko równe, jeśli są równe za pomocą operatora Go = =.
==
Operator definiuje Przejdź do tylko niektórych typów, tak zresztą, to pytanie jest również zasadny.