Answers:
没有区别:
(eq 'my-add #'my-add)
产量 t
所述#可在前方使用lambda指示字节编译器下面的表达式可以是编译字节表达,请参阅文档匿名函数。但是在符号的情况下,没有什么可以编译的。
通常,它在打印的表示形式中与左尖括号(<)一起使用,以指示打印的对象是描述(但无法读取)。例如:
#<buffer foo.txt>
读者也可以在构造中使用它来表示圆形结构。请参阅文档以获取“循环对象的读取语法”。
然后,您可以使用它来表示整数的底数,例如#x2c -> 44。
另外,我敢肯定。
'symbol代表(quote symbol)和句法#'symbol代表(function symbol)。
可以理解的列表可以在Emacs lisp参考索引的顶部找到。
编辑:或者甚至更方便地从Emacs自身内部:
M-x info RET (打开信息浏览器)
d m elisp RET (打开elisp手册)
I # RET(列出#索引中的条目)
我在搜索哈希在黑客攻击中发现的含义时发现了这个问题mode-line-format:
#("-%-" 0 3
(help-echo "Display as tooltip when mouse hovers or with display-local-help."))
"-%-",要修饰的文本:一个破折号和一个%-construct导致“破折号足以填充模式行的其余部分”,从而产生了著名的Emacs ------。0,文本属性所应用的第一个字符。3,文本属性适用的最后一个字符,即整个"-%-"。(help-echo "..."),一个属性和一个字符串作为其参数。可以使用以下propertize函数创建:
(propertize "Hover over me!" 'help-echo '"congratulations!")

将与#("Hover over me!" 0 14 (help-echo "Congratulations!")):

如果您使用的是字体锁定模式,则使用该buffer-substring命令可能会产生以下内容:
(buffer-substring 1 28) ; First 27 characters in the current buffer
⇒ #(";; This buffer is for notes"
0 3
(fontified t face font-lock-comment-delimiter-face)
3 27
(fontified t face font-lock-comment-face))
因此,您可以创建如下内容:

#到一个单独的符号的一个很好的理由是,如果该符号未定义,则在编译时进行诊断。