让我以Emacs Lisp 中的修改示例为例:如何使用 ad-get-arg 和 ad-get-args?
(defun my-add (a b &optional c)
(+ a b)
(unless c
(setq c 4)))
(defadvice my-add (after my-log-on (a b &optional c) activate)
(message "my-add a: %s" a)
(message "my-add: %s" c))
(my-add 1 2 3)
将运行良好的输出:
my-add a: 1
my-add: 3
但(my-add 1 2)
无法c
从原始函数中获取值:
my-add a: 1
my-add: nil
我的问题是如何在defadvice
正文中使用未提供的可选参数(或更一般地说,原始函数中的变量)?