IT用語集 › プログラミング › ダックタイピング

ダックタイピング

プログラミング Svenska → 更新: 2026-10-21

「アヒルのように歩き、アヒルのように鳴くなら、それはアヒルだ」。動的型付け言語では、型に関係なく、適切なメソッドや属性を持っていれば十分だという考え方。

Python、Ruby、JavaScriptで典型的だ。def play(audio): が要求するのは、audio が play() メソッドを持つことだけで、AudioBaseを継承している必要はない。Pythonの __iter__、__len__、__call__ はダックタイピングのプロトコルである。

静的型付け言語での対応物は構造的部分型(TypeScriptの { play(): void })や、トレイト/プロトコル(Rust、Swift)だ。トレードオフは、素早い反復とコンパイル時の安全性の間にある。PEP 544(Pythonのプロトコル)は、構造的部分型をPythonに持ち込む。

← 用語集に戻る