Estou escrevendo uma explicação para algum código de um curso e uso acidentalmente as palavras methode de forma functionintercambiável. Decidi voltar e corrigir o texto, mas encontrei um buraco no meu entendimento.
Pelo que entendi, uma sub-rotina é functionse não age em uma instância de uma classe (seu efeito é restrito a sua entrada / saída explícita) e é methodse 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 methoddeve 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 methodsrealmente 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?