Do Gotwórcy języka napisać :
Go nie zapewnia asercji. Są niezaprzeczalnie wygodne, ale z naszego doświadczenia wynika, że programiści używają ich jako narzędzia, aby uniknąć myślenia o właściwej obsłudze błędów i zgłaszaniu błędów. Właściwa obsługa błędów oznacza, że serwery kontynuują działanie po błędach niekrytycznych zamiast awarii. Właściwe raportowanie błędów oznacza, że błędy są bezpośrednie i do rzeczy, oszczędzając programiście interpretacji dużego śladu awarii. Precyzyjne błędy są szczególnie ważne, gdy programista widzący błędy nie zna kodu.
Jaka jest twoja opinia na ten temat?
reflect.DeepEqual, na pewno nie potrzebujesz go. Jest to wygodne, ale kosztem wydajności (testy jednostkowe są dobrym przykładem użycia). W przeciwnym razie możesz bez problemu wprowadzić kontrolę równości odpowiednią dla Twojej „kolekcji”.
forpętli w Go (podobnie jak C). To byłoby naprawdę miło mieć ogólne operacje plaster, chociaż porównanie komplikuje, gdy wskaźniki i kodowanym są zaangażowane.