Lessico IT › Programmazione › Duck typing

Duck typing

Programmazione Svenska → Aggiornato: 2026-10-01

«Se cammina come un'anatra e fa qua qua come un'anatra, allora è un'anatra»: nei linguaggi dinamici a un oggetto basta avere i metodi o gli attributi giusti, indipendentemente dal suo tipo.

Tipico di Python, Ruby e JavaScript: def play(audio): richiede soltanto che audio abbia un metodo play(), non che erediti da una qualche classe AudioBase. In Python, __iter__, __len__ e __call__ sono protocolli basati sul duck typing.

Il corrispettivo dei linguaggi statici è la tipizzazione strutturale (TypeScript: { play(): void }) oppure i trait/protocolli (Rust, Swift). Il compromesso è tra rapidità di sviluppo e sicurezza a tempo di compilazione. La PEP 544 (Python Protocols) porta la tipizzazione strutturale anche in Python.

← Torna al lessico