Sobes.tech
Junior — Middle

Pode explicar o conceito de duck typing e como ele é aplicado em linguagens de programação dinâmicas?

sobes.tech IA

Resposta da IA

O duck typing é um conceito em linguagens de programação dinâmicas, onde o tipo de um objeto é determinado não pelo seu classe ou hierarquia de herança, mas pela presença de certos métodos e propriedades.

A frase "Se algo parece um pato, nada como um pato e grasna como um pato, então é um pato" reflete a essência: se um objeto suporta a interface necessária (métodos), pode ser usado como o tipo desejado.

Em C# isso não é típico, pois a linguagem é de tipagem estática, mas com o surgimento do tipo dinâmico (dynamic) pode-se aplicar o duck typing:

void MakeItQuack(dynamic obj) {
    obj.Quack(); // A compilação passará, o erro só ocorrerá em tempo de execução se o método não existir
}

class Duck {
    public void Quack() { Console.WriteLine("Quack!"); }
}

MakeItQuack(new Duck());

Assim, o duck typing permite escrever um código mais flexível, que não depende de tipos específicos, mas apenas da presença dos métodos necessários.