ダック・タイピング
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/17 16:02 UTC 版)
その他の言語など
Javaは言語構文レベルで動的型付けをサポートしないが、リフレクションを用いることで、ダック・タイピング相当を実現できる。Core Reflection APIとして、java.lang.reflect
パッケージが用意されている[17]。また、Java Native Interface (JNI) を用いることで、C言語やC++などのネイティブコードからJavaで書かれたクラスを利用することができるが、リフレクション同様にダック・タイピングに応用することもできる。
COMにおいても、IDispatch
インタフェース[18]を実装することで、ダック・タイピング相当を実現できる。VBScriptやJScriptといったスクリプト言語(動的プログラミング言語)の実装を容易にするための基盤として、拡張インタフェースIDispatchEx
も用意されている[19]。
関連項目
- 型システム
- 動的型付け
- ポリモーフィズム
- 派生型
- ダイナミックバインディング
- 動的プログラミング言語
- ダック・テスト
- ジェネリックプログラミング
- en:Structural type system(構造的型システム)
- en:Nominal type system(名前的型システム)
- 型推論
外部リンク
この節に雑多な内容が羅列されています。 |
この節の出典は、Wikipedia:信頼できる情報源に合致していないおそれがあります。 |
- Duck Typing: Ruby[リンク切れ]
- How to duck type? - the psychology of static typing in Ruby
- Java Does Duck Typing 2005年4月29日
- The Perils of Duck Typing (Java)
- PythonでのGzipFileに関する例[リンク切れ]
- DuckTyping: Runtime Dynamic Interface Implementation - CodeProject (.NET)
注釈
- ^ nominalは名目的または記名的とも訳される。
出典
- ^ “Python Duck Typing - Example” (英語). Techie Hours (2020年6月28日). 2020年7月26日閲覧。
- ^ a b Python Software Foundation. “Glossary — Python 3.7.1 documentation, §duck-typing”. docs.python.org. 2018年11月8日閲覧。
- ^ Dynamic typing vs. static typing | Oracle
- ^ Benjamin C. Pierce「第15章 部分型付け」『型システム入門 −プログラミング言語と型の理論−』オーム社、2013年3月26日。ISBN 978-4274069116。
- ^ Objects and Aspects: Row Polymorphism | Neel Krishnaswami, Department of Computer Science, Carnegie Mellon University
- ^ 実例によるPureScript
- ^ OCamlで構築するモダンWeb:型付きHTML5プログラミングの実際 | 有限会社ITプランニング | 今井 敬吾
- ^ Benjamin C. Pierce「19.3 名前的型システムと構造的型システム」『型システム入門 −プログラミング言語と型の理論−』オーム社、2013年3月26日。ISBN 978-4274069116。
- ^ typingは「型付け」と訳されることが多いが、subclassingは「サブクラス化」と訳されることが多い。subtypingは「部分型付け」や「サブタイプ化」としてもよいかもしれないが、本記事ではduck typingを「ダック・タイピング」とカナ表記しているのでそれに準じることにする。
- ^ TypeScript: Documentation - Type Compatibility
- ^ Python Software Foundation. “Glossary — Python 3.10.1 documentation, §abstract base class”. docs.python.org. 2021年12月19日閲覧。
- ^ Kernel.#puts (Ruby 3.0.0 リファレンスマニュアル)
- ^ dynamic 型の使用 - C# プログラミング ガイド | Microsoft Docs
- ^ Differences Between C++ Templates and C# Generics - C# Programming Guide | Microsoft Docs
- ^ Object Variable Declaration - Visual Basic | Microsoft Docs
- ^ Early and Late Binding - Visual Basic | Microsoft Docs
- ^ Java Core Reflection
- ^ IDispatch Interface and Accessibility - Windows applications | Microsoft Docs
- ^ IDispatchEx Interface | Microsoft Docs
固有名詞の分類
- ダック・タイピングのページへのリンク