我正在审查Emacs软件包中的neotree代码包。我不知道下面宏定义中下划线(_)的含义。
(lambda (&rest _))
该宏的完整定义如下。
(defmacro neotree-make-executor (&rest fn-form)
"Make an open event handler, FN-FORM is event handler form."
(let* ((get-args-fn
(lambda (sym) (or (plist-get fn-form sym) (lambda (&rest _)))))
(file-fn (funcall get-args-fn :file-fn))
(dir-fn (funcall get-args-fn :dir-fn)))
`(lambda (&optional arg)
(interactive "P")
(neo-global--select-window)
(neo-buffer--execute arg ,file-fn ,dir-fn))))
Emacs 28.0.50
中,使用C-h i m Elisp <RET> g <Converting to Lexical Binding>
进入相关的Info
部分。 - Y. E.