J'écris une explication pour un code pour un cours, et j'utilise accidentellement les mots method
et de function
manière interchangeable. J'ai décidé de revenir en arrière et de corriger le libellé, mais je suis tombé sur un trou dans ma compréhension.
D'après ce que je comprends, un sous-programme est un function
s'il n'agit pas sur une instance d'une classe (son effet est limité à son entrée / sortie explicite), et est un method
s'il opère sur une instance d'une classe (il peut porter effets secondaires sur l'instance qui la rendent impure).
Il y a une bonne discussion ici sur le sujet. Notez que d'après les définitions de réponse acceptées, un statique method
devrait en fait être une fonction car une instance n'est jamais transmise implicitement et n'a accès aux membres d'aucune instance.
Avec ceci est l'esprit cependant, ne devrait pas statique methods
être réellement des fonctions?
De par leur définition, ils n'agissent pas sur des instances particulières d'une classe; ils ne sont "liés" à la classe qu'à cause de leur relation. J'ai vu quelques bons sites qui font référence aux sous-programmes statiques comme des «méthodes» ( Oracle , Fredosaurus , ProgrammingSimplified ), donc soit ils ignorent tous la terminologie, soit il me manque quelque chose (je suppose que c'est la dernière) .
Je voudrais m'assurer que j'utilise le bon libellé.
Quelqu'un peut-il clarifier cela?