関数オブジェクト
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/04/08 18:38 UTC 版)
関数オブジェクト(かんすうオブジェクト、英: function object)は、プログラミング言語において、関数(サブルーチンまたはプロシージャ)を、オブジェクトとしたものである。手続きオブジェクトとも言う(プロシージャ=手続き)[要出典]。なお、ここでのオブジェクトの語は、いわゆるオブジェクト指向のそれに限らず、「第一級オブジェクト」という語におけるのと同じ、メモリ上に領域を確保されたもの、といった意味である。関数が第一級オブジェクトである場合は特に第一級関数と言う。
注釈
- ^ 匿名クラスの構文であれば、実際にはインタフェースだけでなく任意の具象クラスや抽象クラスを継承することもできるが、Javaでは実装(クラス)の多重継承ができず、クラスを使うと自由度が低下するため、一般的に関数オブジェクトとして使われるのはインタフェースである。
出典
- ^ C++ FAQ [33.15] What's the difference between a functionoid and a functor?
- ^ イマドキのJava徹底入門(13) ラムダ式の入力パラメータにvarを使用する | TECH+(テックプラス)
- ^ スクリプトを記述する上では簡単なように設計されているが、内部ではわりとコストが掛かる。ブロックはエスケープしないため軽い処理で扱うことができるし、元々イテレータのためのものだったため、繰り返し処理のために使われることからも、軽いほうが望ましい。それがオブジェクトになれば、メソッドの返り値などになり得るために、重い処理となるためである。
関数オブジェクト
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/04/29 13:43 UTC 版)
「Standard Template Library」の記事における「関数オブジェクト」の解説
関数オブジェクトはoperator()(関数呼び出し演算子)をオーバーロードしたクラスの一種であり、オブジェクトでありながら関数のように呼び出せるという特徴を持つ。ファンクタ (functor) とも呼ばれる。 関数オブジェクトの定義は例えば以下のようなものである。 struct square{ template
※この「関数オブジェクト」の解説は、「Standard Template Library」の解説の一部です。
「関数オブジェクト」を含む「Standard Template Library」の記事については、「Standard Template Library」の概要を参照ください。
固有名詞の分類
- 関数オブジェクトのページへのリンク