Estou escrevendo uma explicação para algum código de um curso e uso acidentalmente as palavras method
e de forma function
intercambiável. Decidi voltar e corrigir o texto, mas encontrei um buraco no meu entendimento.
Pelo que entendi, uma sub-rotina é function
se não age em uma instância de uma classe (seu efeito é restrito a sua entrada / saída explícita) e é method
se opera em uma instância de uma classe (pode efeitos colaterais na instância que a tornam impura).
Há uma boa discussão aqui sobre o assunto. Observe que, pelas definições da resposta aceita, uma estática method
deve realmente ser uma função porque uma instância nunca é passada implicitamente e não tem acesso aos membros de nenhuma instância.
Com isso em mente, a estática não deveria methods
realmente ser funções?
Por sua definição, eles não agem em instâncias particulares de uma classe; eles só estão "vinculados" à classe por causa de relação. Eu já vi alguns sites com boa aparência que se referem a sub-rotinas estáticas como "métodos" ( Oracle , Fredosaurus , ProgrammingSimplified ); portanto, todos estão ignorando a terminologia ou estou perdendo alguma coisa (meu palpite é o último). .
Gostaria de ter certeza de que estou usando as palavras corretas.
Alguém pode esclarecer isso?