Do Go
twó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”.
for
pę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.