pandazx's blog

Hadoop, データ分析など雑多な技術ブログ

ダックタイピングとstructural subtyping

プログラミング言語の解説で、ダックタイピングという用語がわからなかったので調べた。

これは動的言語において、アヒルのように歩き、同じ鳴き声をするなら、そのオブジェクトはアヒルと同じように扱えるってことらしい(ポリモーフィズム的な感じ)

RubyのサンプルコードがWikipediaにあるので、わかりやすい。

静的言語にも、ジェネリクスを使った似た考え方があるが、両者のハイブリッド型のstructural subtyping があるらしい。それのわかりやすい説明がこちら

structural subtypingは型定義はするが、関数などの定義をいい感じにサボれて(実行に必要なものだけけ定義)、継承関係は定義せずに扱えるよう、両者をいいところどりした考え方っぽい