Junior — Middle
Explique o conceito de duck typing e em que se diferencia da tipagem estática na programação.
sobes.tech IA
Resposta da IA
Duck typing é um conceito na programação em que o tipo de um objeto é determinado não pelo seu classe ou interface, mas pela presença de certos métodos e propriedades. Se um objeto se comporta como "pato" (tem os métodos necessários), é considerado adequado.
Diferença em relação à tipagem estática:
- Na tipagem estática, os tipos são verificados em tempo de compilação, e os objetos devem corresponder explicitamente a tipos definidos.
- No duck typing, a verificação ocorre em tempo de execução, e apenas a compatibilidade da interface (métodos/propriedades) é importante, não a herança ou tipos declarados.
Exemplo em Python (duck typing):
class Duck:
def quack(self):
print("Quack quack")
class Person:
def quack(self):
print("Posso grasnar como um pato")
def make_it_quack(thing):
thing.quack()
make_it_quack(Duck()) # Quack quack
make_it_quack(Person()) # Posso grasnar como um pato
Aqui, a função não se preocupa com o tipo do objeto, apenas com a existência do método quack.