emacs是否使用全局字符串缓存?

时间:2016-07-01 23:43:37

标签: emacs global-variables

我认为答案是否是

的结果
(eq "a" "a")

nil。那么,这是否意味着创建一个持有字符串的单个常量符号并使用符号而不是实际字符串对所有内容进行字节编译会更快?我不确定如何正确测试。

1 个答案:

答案 0 :(得分:1)

elisp reader 每当读取字符串文字时都会创建一个新对象。

读者将(eq "a" "a")转换为三个对象的列表以供后续评估:实习符号eq和两个字符串对象。

两个字符串对象是equalstring-equal,因为它们具有相同的值;但它们是不同的对象,所以它们不是eq