Piszę wyjaśnienie dla jakiegoś kodu kursu i przypadkowo używam słów method
i function
zamiennie. Postanowiłem wrócić i poprawić sformułowanie, ale wpadłem w lukę w moim zrozumieniu.
Z tego, co rozumiem, podprogram jest a, function
jeśli nie działa na instancję klasy (jej efekt jest ograniczony do jej jawnego wejścia / wyjścia) i jest a, method
jeśli działa na instancji klasy (może przenosić skutki uboczne instancji, które czynią ją nieczystą).
Jest tutaj dobra dyskusja na ten temat. Zauważ, że zgodnie z przyjętymi definicjami odpowiedzi statyczna method
powinna w rzeczywistości być funkcją, ponieważ instancja nigdy nie jest niejawnie przekazywana i nie ma dostępu do elementów członkowskich żadnej instancji.
Mając to na uwadze, czy statyczne nie powinny methods
być w rzeczywistości funkcjami?
Z definicji nie działają na określonych instancjach klasy; są „przywiązani” do klasy tylko ze względu na pokrewieństwo. Widziałem kilka dobrze wyglądających witryn, które odnoszą się do statycznych podprogramów jako „metod” ( Oracle , Fredosaurus , ProgrammingSimplified ), więc albo wszystkie przeoczają terminologię, albo czegoś mi brakuje (przypuszczam, że to drugie) .
Chciałbym się upewnić, że używam właściwego sformułowania.
Czy ktoś może to wyjaśnić?