Go prend-il en charge la surcharge de fonctions ?
Lors de la transition d'une bibliothèque C vers Go, les développeurs peuvent rencontrer des difficultés pour adapter des fonctions avec des arguments variables, ce qui est courant. en C. En Go, la surcharge de fonctions n'est pas prise en charge, contrairement à C.
Considérez la fonction Go suivante déclarations :
func (e *Easy)SetOption(option Option, param string) { // ... } func (e *Easy)SetOption(option Option, param long) { // ... }
Bien que ces fonctions partagent le même nom, elles acceptent différents types de paramètres. Cependant, cette approche n’est pas autorisée dans Go. Le compilateur signalera une erreur, "redéfini dans ce bloc".
Dans Go, la répartition des méthodes est simplifiée en éliminant le besoin de correspondance de type. La surcharge des méthodes avec des signatures différentes a été jugée potentiellement source de confusion et fragile. Au lieu de cela, Go opte pour la cohérence des types et la correspondance des fonctions basées sur le nom.
Bien que Go manque de fonctions surchargées, il fournit des fonctions variadiques pour simuler certaines de ses fonctionnalités. Les fonctions variadiques autorisent des arguments facultatifs, avec des valeurs par défaut déduites pour les paramètres omis. Cette technique sacrifie cependant la vérification du type.
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!