Tenho certeza de que existe um nome especial para a 'especificação' de uma função / método. É uma palavra que se refere a
- quantos argumentos são necessários
- a ordem dos argumentos
- quais argumentos são opcionais
Existe um nome para isso?
Tenho certeza de que existe um nome especial para a 'especificação' de uma função / método. É uma palavra que se refere a
Existe um nome para isso?
Respostas:
Geralmente, isso é chamado de assinatura de tipo .
Uma assinatura de tipo inclui o tipo de retorno da função, o número de argumentos, os tipos de argumentos ou erros que ela pode transmitir.
interface
declaração de função C / C ++ ou em um arquivo de cabeçalho (literalmente chamado de prototype
).
TL; DR Você provavelmente está falando sobre uma assinatura de função (ou assinatura de método), parte da qual é uma assinatura de tipo.
Mas realmente depende do que você considera uma função "spec". Eu interpreto como "todas as informações necessárias para um programador chamar uma função". Isso inclui o nome da função, o tipo de parâmetro, a ordem e a necessidade, provavelmente o tipo de retorno e provavelmente até o espaço para nome dessa função.
Mas se todas essas coisas são necessárias (ou mesmo bem definidas) depende ou não do idioma / ambiente que você está usando. Além disso, se você alterar a definição para "todas as informações necessárias para uma máquina chamar uma função", a especificação provavelmente será diferente 1 .
Estritamente falando, uma assinatura de função (ou método) não é um termo consistente, 2, 3 mesmo no mesmo idioma. 4, 5, 6, 7 Mas é quase certamente a palavra que você está procurando, porque será entendida por quase qualquer programador.
public
, static
, etc.language-agnostic
, exemplos do C ++ são (A) relevante para mim e (B) ilustrativa da confusão que muitas vezes envolve a terminologia humano
Eu acredito que o termo é "contrato". Ele define a interface e o que é esperado do chamador e chamado; no entanto, também abrange coisas como valores permitidos de parâmetros, que não são algo que muitos idiomas permitem ser definidos pela função ou definição de classe; portanto, o termo "contrato" pode ter significado mais amplo do que o que você quis dizer. Eu já vi isso em vários livros de programação orientados a objetos e específicos de Java. Não tenho certeza se é específico de Java, mas não vejo por que precisaria ser. Assinatura é o outro termo comumente usado, mas passei a gostar de "contrato".