如何在Emacs Lisp中理解这种形式(交互式(列表为'interactive))?

OYY*_*YYZ 3 emacs elisp

我发现了一些这样的代码,

 1 (require 'cl-lib)
 2 (require 'company)
 3 
 4 (defun company-sample-backend (command &optional arg &rest ignored)
 5   (interactive (list 'interactive))
    ...
   )
Run Code Online (Sandbox Code Playgroud)

但是如何理解第5行?

phi*_*ils 5

interactive声明的自变量可以是字符串或省略号形式,当对其求时,将返回该函数的自变量值列表

在这种情况下,声明使用返回列表的形式。形式是:

(list 'interactive)
Run Code Online (Sandbox Code Playgroud)

这是一种返回单个项目列表的形式,即符号 interactive

该函数的参数列表为:

(command &optional arg &rest ignored)
Run Code Online (Sandbox Code Playgroud)

因此,当以交互方式调用此函数时,参数command将具有值interactive