次: , 前: Defining Advice, 上: Advising Functions


16.3 包囲アドバイス

包囲アドバイスにより、関数の元定義を包み込むLisp式を書けます。 関数の元定義を実行する場所を特別なシンボルad-do-itで指定します。 包囲アドバイスの本体に現れたこのシンボルは、 元定義(と内側の包囲アドバイス本体)のフォームを含んだprognで 置き換えられます。 例を示しましょう。

     (defadvice foo (around foo-around)
       "Ignore case in `foo'."
       (let ((case-fold-search t))
         ad-do-it))

これは、fooの元定義を実行するときに 大文字小文字を区別しないで探索することを保証します。

— 変数: ad-do-it

これは実際には変数ではないが、包囲アドバイス内では変数のように用いる。 関数の元定義と『より内側の』包囲アドバイスを実行する場所を指定する。

包囲アドバイスでad-do-itを用いなければ、関数の元定義を実行しません。 これは、元定義を完全に無効にする手段です。 (さらに、内側の包囲アドバイス断片も無効にする。)