Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Emacs 为什么addhook允许'hook';空虚?_Emacs_Elisp - Fatal编程技术网

Emacs 为什么addhook允许'hook';空虚?

Emacs 为什么addhook允许'hook';空虚?,emacs,elisp,Emacs,Elisp,从C-h f添加挂钩: 根据守则: (defun add-hook (hook function &optional append local) ... (or (boundp hook) (set hook nil)) (or (default-boundp hook) (set-default hook nil)) ... 这有什么用?我想它是有用的,否则它就不存在了。。。我就是想不出它有什么好用…它允许您在定义钩子变量的包加载之前设置钩子变量。mgalgs:注意,

从C-h f添加挂钩:

根据守则:

(defun add-hook (hook function &optional append local)
  ...
  (or (boundp hook) (set hook nil))
  (or (default-boundp hook) (set-default hook nil))
  ...

这有什么用?我想它是有用的,否则它就不存在了。。。我就是想不出它有什么好用…

它允许您在定义钩子变量的包加载之前设置钩子变量。

mgalgs:注意,正是钩子变量的值被设置为
nil
(即空列表)。所以,只要在变量为空时初始化它就行了。否则,我们将在加载后进行
eval
评估,或者必须非常小心地在init文件中进行排序。
(defun add-hook (hook function &optional append local)
  ...
  (or (boundp hook) (set hook nil))
  (or (default-boundp hook) (set-default hook nil))
  ...