次: Activation of Advice, 前: Around-Advice, 上: Advising Functions
マクロdefadvice
はdefun
に似ていて、
アドバイスのコードやアドバイスに関する他のすべての情報を
ソースコードで明示します。
関数ad-add-advice
を用いると、
その詳細を計算で求めたアドバイスを作成できます。
ad-add-advice
を呼び出すと、 関数functionに対するクラスclassのアドバイス断片として adviceを追加する。 引数adviceはつぎの形式である。(name protected enabled definition)ここで、protectedとenabledはフラグであり、 definitionはアドバイスの動作を指定する式である。 enabledが
nil
であると、 このアドバイス断片は当初は無効になる (see Enabling Advice)。functionに指定したクラスclassのアドバイス断片がすでにあると、 positionは新しいアドバイス断片をリストのどこに置くかを指定する。 positionの値は、
first
、last
、あるいは、 (リストの先頭を0から数えた)数である。 範囲外の数は先頭か末尾のどちらか近いほうになる。functionに同じ名前のアドバイス断片adviceがすでにあると、 引数positionは無視され、古いアドバイス断片を新しいもので置き換える。