Le site Go
créateurs de langues écrire :
Go ne fournit pas d'assertions. Ils sont indéniablement pratiques, mais d'après notre expérience, les programmeurs les utilisent comme une béquille pour éviter de penser à la gestion et au signalement corrects des erreurs. Une gestion correcte des erreurs signifie que les serveurs continuent de fonctionner après des erreurs non fatales au lieu de se planter. Un rapport d'erreur approprié signifie que les erreurs sont directes et précises, ce qui évite au programmeur d'interpréter une grande trace de crash. La précision des erreurs est particulièrement importante lorsque le programmeur qui les voit n'est pas familier avec le code.
Quelle est votre opinion à ce sujet ?
6 votes
tangente : Le go est un langage inhabituellement opiniâtre. Ce n'est pas nécessairement une mauvaise chose. Cependant, cela signifie que vous devez prendre ses opinions avec un plus gros grain de sel. Cela signifie également que si vous n'êtes pas d'accord, vous allez grincer des dents en utilisant le langage. Pour montrer à quel point Go s'accroche à ses opinions en dépit de la réalité, songez que vous devez recourir à la magie de la réflexion pour déterminer si deux collections sont égales.
0 votes
@allyourcode Si vous faites référence à
reflect.DeepEqual
vous ne le faites certainement pas. besoin de ça. C'est pratique, mais au détriment des performances (les tests unitaires sont un bon cas d'utilisation). Sinon, vous pouvez implémenter n'importe quel contrôle d'égalité approprié pour votre "collection" sans trop de problèmes.1 votes
Non, ce n'est pas ce dont je parle. Il n'y a rien de tel que tranche1 == tranche2 sans réflexion. Tous les autres langages ont un équivalent de cette opération super basique. La seule raison pour laquelle Go n'en a pas est un préjugé.
0 votes
Vous pouvez comparer deux tranches sans réflexion à l'aide de la fonction
for
en Go (tout comme en C). Il s'agit de serait Ce serait vraiment bien d'avoir des opérations de découpage génériques, bien que la comparaison devienne compliquée lorsque des pointeurs et des structures sont impliqués.