Estoy escribiendo una explicación de algún código para un curso, y he estado usando las palabras accidentalmente method
e function
indistintamente. Decidí volver y arreglar la redacción, pero me encontré con un agujero.
Por lo que entiendo, una subrutina es function
si no actúa en una instancia de una clase (su efecto está restringido a su entrada / salida explícita), y es method
si opera en una instancia de una clase (puede llevar fuera de los efectos secundarios en la instancia que lo hacen impuro).
Aquí hay una buena discusión sobre el tema. Tenga en cuenta que, según las definiciones de la respuesta aceptada, una estática method
debería ser una función porque una instancia nunca se pasa implícitamente y no tiene acceso a los miembros de ninguna instancia.
Con esto en mente, ¿no debería ser estática methods
realmente funciones?
Por su definición, no actúan en instancias particulares de una clase; solo están "atados" a la clase debido a su relación. Sin embargo , he visto algunos sitios atractivos que se refieren a las subrutinas estáticas como "métodos" ( Oracle , Fredosaurus , ProgrammingSimplified ), por lo que o todos pasan por alto la terminología o me falta algo (supongo que es lo último) .
Me gustaría asegurarme de que estoy usando la redacción correcta.
¿Alguien puede aclarar esto?