Tolérance de Go envers les paramètres de fonction inutilisés : une question de conception
Contrairement à C, Go interdit la compilation de programmes contenant des variables inutilisées. Cependant, cela soulève des questions concernant l’autorisation des paramètres de fonction inutilisés. Examinons les raisons de cette apparente incohérence.
Au départ, il peut sembler contre-intuitif que Go autorise la compilation de fonctions avec des paramètres inutilisés. Cependant, les concepteurs du langage avaient des motivations spécifiques pour cette décision. Selon les discussions au sein de la communauté Go, cela découle d'une distinction fondamentale entre les variables inutilisées et les paramètres de fonction inutilisés.
Bien que les variables inutilisées soient souvent considérées comme des erreurs de programmation, il est courant de déclarer des fonctions avec des arguments qui ne sont pas toujours utilisés. . Dans de tels cas, laisser les arguments sans nom avec un trait de soulignement (_) pourrait prêter à confusion, en particulier pour les fonctions qui n'utilisent aucun argument, comme dans func foo(_, _ int).
Les noms de paramètres inutilisés servent comme documentation vitale, fournissant un contexte et une intention supplémentaires pour la fonction. Cela devient particulièrement important lors de la mise en œuvre d’interfaces. Par exemple, une fonction qui fonctionne sur un graphique peut ne pas avoir besoin de prendre en compte les nœuds lors du calcul des distances entre les arêtes, comme le montre l'exemple func (graph *MyGraph) Distance(node1, node2 Node) int {...}.
Une autre solution possible consistant à interdire les arguments nommés _ lorsqu'ils ne sont pas utilisés a finalement été rejetée en raison de la garantie de compatibilité future du langage Go. De plus, même les paramètres inutilisés peuvent fournir une documentation implicite, favorisant la découverte et la lisibilité du code.
Essentiellement, la décision d'autoriser les paramètres de fonction inutilisés est un choix de conception motivé par des facteurs tels que la documentation, les pratiques de programmation courantes et la cohérence. avec d'autres aspects de la langue. Même s'il n'y a peut-être pas de raison unique et définitive, la justification de ce choix souligne le processus de réflexion nuancé qui a façonné la philosophie de conception de Go.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!