デコレーターとは 本連載の第15回「ローカル関数とラムダ式」では関数を受け取る関数や、関数を戻り値とする関数を取り上げた。今回紹介するデコレーターとは、基本的には関数を受け取り、関数を戻り値とする関数のことだ(そうではない場合もある。後述)。クラスを受け取り、クラスを戻り値とする関数やクラスも書けるが、本稿では関数を受け取り、関数を戻り値とする基本的なデコレーターだけを紹介する。 「関数を受け取り、関数を戻り値とする関数」というと難しく感じるかもしれないが、デコレーターの使用例は第29回「クラス変数/クラスメソッド/スタティックメソッド」の「クラスメソッド」で既に紹介している。デコレーターを使うだけなら、以下のように「@デコレーター」(デコレーター式)を使って関数を修飾(デコレート)するだけでよい(以下の例はメソッドだが、使い方は同じ)。

