Les Go
créateurs du langage écrivent :
Go ne fournit pas d'assertions. Ils sont indéniablement pratiques, mais notre expérience a montré que les programmeurs les utilisent comme une béquille pour éviter de penser à une gestion et à un rapport d'erreur appropriés. Une gestion correcte des erreurs signifie que les serveurs continuent de fonctionner après des erreurs non fatales au lieu de planter. Un rapport d'erreurs approprié signifie que les erreurs sont directes et directes, ce qui évite au programmeur d'interpréter une grande trace de plantage. Les erreurs précises sont particulièrement importantes lorsque le programmeur qui voit les erreurs n'est pas familier avec le code.
Quelle est votre opinion à ce sujet?
reflect.DeepEqual
, vous n'en avez certainement pas besoin . C'est pratique, mais au détriment des performances (les tests unitaires sont un bon cas d'utilisation). Sinon, vous pouvez implémenter sans problème la vérification d'égalité appropriée pour votre "collection".
for
boucle dans Go (tout comme C). Ce serait vraiment bien d'avoir des opérations génériques de tranche, bien que la comparaison se complique lorsque des pointeurs et des structures sont impliqués.