Los Go
creadores del lenguaje escriben :
Ir no proporciona afirmaciones. Son innegablemente convenientes, pero nuestra experiencia ha sido que los programadores los usan como una muleta para evitar pensar en el manejo adecuado de los errores y la presentación de informes. El manejo adecuado de errores significa que los servidores continúan operando después de errores no fatales en lugar de fallar. El informe de errores adecuado significa que los errores son directos y al grano, evitando que el programador interprete una gran traza de bloqueo. Los errores precisos son particularmente importantes cuando el programador que ve los errores no está familiarizado con el código.
Cuál es tu opinión acerca de esto?
reflect.DeepEqual
, ciertamente no lo necesitas . Es conveniente, pero a costa del rendimiento (las pruebas unitarias son un buen caso de uso). De lo contrario, puede implementar cualquier verificación de igualdad que sea apropiada para su "colección" sin demasiados problemas.
for
bucle en Go (al igual que C). Se podría ser muy bueno tener operaciones rebanada genéricos, aunque la comparación se complica cuando los punteros y las estructuras son los involucrados.