その他の言語のデリゲート
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/09/07 20:52 UTC 版)
「デリゲート (プログラミング)」の記事における「その他の言語のデリゲート」の解説
D言語には関数オブジェクトがあり、型としてfunctionとdelegateがある。無名関数を作る式として関数リテラルがあり、functionとdelegateのそれぞれに対応した構文がある。関数リテラルの省略構文としてラムダ式がある。functionとdelegateの違いは、作られたスコープの環境にアクセスできるかどうかで、アクセスする場合はデリゲートである必要がある。ラムダ式では内容に応じて、デリゲートである必要がある場合はデリゲートになる。 Javaはバージョン8にてラムダ式とともにメソッド参照の機能を導入した。ただしマルチキャストデリゲートに相当する機能はない。 C++/CX(英語版)は.NETマネージ言語ではなくネイティブ言語拡張だが、デリゲートをサポートする。イベントハンドラーの割り当てに利用される。ただし、C++/CXは参照カウントベースのガベージコレクションを採用していることから、強い参照による循環参照を防ぐため、イベントハンドラーの記述にはラムダ式よりも名前付き関数を利用することが推奨されている。 Objective-Cは言語機能としてデリゲートを持たないが、Objective-Cを用いたイベント駆動型ソフトウェアを開発する際の基本的なデザインパターンとして「委譲」が採用されている。 詳細は「委譲」を参照
※この「その他の言語のデリゲート」の解説は、「デリゲート (プログラミング)」の解説の一部です。
「その他の言語のデリゲート」を含む「デリゲート (プログラミング)」の記事については、「デリゲート (プログラミング)」の概要を参照ください。
- その他の言語のデリゲートのページへのリンク