Je suis presque sûr qu'il existe un nom spécial pour la "spécification" d'une fonction / méthode. C'est un mot qui fait référence à
- combien d'arguments il faut
- l'ordre des arguments
- quels arguments sont facultatifs
Y a-t-il un nom pour ça?
Je suis presque sûr qu'il existe un nom spécial pour la "spécification" d'une fonction / méthode. C'est un mot qui fait référence à
Y a-t-il un nom pour ça?
Réponses:
Cela s'appelle généralement une signature de type .
Une signature de type inclut le type de retour de la fonction, le nombre d'arguments, les types d'arguments ou les erreurs qu'elle peut renvoyer.
interface
, ou une déclaration de fonction C / C ++ dans un fichier d'en-tête (littéralement appelé a prototype
).
TL; DR Vous parlez probablement d'une signature de fonction (ou signature de méthode), dont une partie est une signature de type.
Mais cela dépend vraiment de ce que vous considérez comme une fonction "spec". Je l'interprète comme "toutes les informations nécessaires à un programmeur pour appeler une fonction". Cela inclut le nom de la fonction, le type de paramètre, l'ordre et la nécessité, probablement le type de retour et probablement même l'espace de noms de cette fonction.
Mais si toutes ces choses sont nécessaires (ou même bien définies) dépend du langage / environnement que vous utilisez. De plus, si vous changez la définition en "toutes les informations nécessaires à une machine pour appeler une fonction", la spécification est probablement différente 1 .
À proprement parler, une signature de fonction (ou méthode) n'est pas un terme cohérent, 2, 3 même dans la même langue. 4, 5, 6, 7 Mais c'est presque certainement le mot que vous recherchez, car il sera compris par presque tous les programmeurs.
public
, static
, etc.language-agnostic
, les exemples C ++ sont (A) pertinents pour moi et (B) illustrent la confusion qui entoure si souvent la terminologie humaine
Je crois que le terme est "contrat". Il définit l'interface et ce qui est attendu de l'appelant et de l'appelé; cependant, il couvre également des choses comme les valeurs autorisées des paramètres, ce qui n'est pas quelque chose que de nombreux langages permettent de définir par la définition de la fonction ou de la classe, donc le terme "contrat" pourrait avoir un sens plus large que ce que vous vouliez dire. Je l'ai vu dans plusieurs livres de programmation orientés objet et spécifiques à Java. Je ne sais pas si c'est spécifique à Java, mais je ne vois pas pourquoi cela devrait être. La signature est l'autre terme couramment utilisé, mais j'ai appris à aimer «contrat».