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))
因此,您可以创建如下内容:
#
到一个单独的符号的一个很好的理由是,如果该符号未定义,则在编译时进行诊断。