O que é a assinatura de um método?

Código Épico

O que é a assinatura de um método?

Gabriel Nascimento
Escrito por Gabriel Nascimento em 12 de agosto de 2022

A assinatura serve para identificar um método de forma única.

Para isso, é utilizada qualquer informação disponível no método. Como por exemplo:

  • O nome;
  • Os parâmetros;
  • Ou até seu retorno.
assinatura de método

Porém as regras variam dependendo da linguagem. O mais comum é analisar apenas o nome e os parâmetros.

Então, além do nome…

Se todos os parâmetros forem iguais, você tem o mesmo método. Se apenas um deles for diferente, você tem um método diferente.

Veja abaixo, 3 funções diferentes, mas com o mesmo nome:

calcular(valor1: number): number { ... }

calcular(valor1: number, valor2: number): number { ... }

calcular(valor1: string): number { ... }

Note que os 2 primeiros exemplos possuem uma quantidade de parâmetros diferente.

Enquanto o terceiro possui a mesma quantidade, mas o tipo é string.

Qualquer uma dessas mudanças altera a assinatura do método e torna ele único.

Então, para serem considerados iguais e gerar um conflito, 2 métodos precisariam ter:

  • A mesma quantidade de argumentos;
  • Do mesmo tipo;
  • E na mesma ordem.
// Métodos iguais: mesmo nome, sem parâmetros

calcular(): number { ... } 
calcular(): string { ... } 

// Métodos iguais: mesmo nome, 1 parâmetro "number"

calcular(valor1: number): number { ... }
calcular(valor2: number): number { ... }

Mas porque existe assinatura de método?

ilustração de assinatura

Nas linguagens mais antigas, cada função é identificada apenas pelo seu nome.

Porém, em linguagens mais modernas, vários métodos podem ter o mesmo nome. E você precisa evitar confundi-los de alguma forma.

Para isso, existe o conceito de assinatura de função. Ou, no caso de linguagens orientadas a objeto, assinatura de método.

O que deixa a linguagem mais versátil, podendo executar uma lógica diferente só de mudar 1 dos parâmetros.

Hey,

o que você achou deste conteúdo? Conte nos comentários.

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

One Reply to “O que é a assinatura de um método?”