Emacs Elisp中的char表包含什么?
当我将某些内容设置为char表时,它会创建额外的内部char表。例如:Emacs Elisp中的char表包含什么?,emacs,elisp,Emacs,Elisp,当我将某些内容设置为char表时,它会创建额外的内部char表。例如: ELISP> (setq *test-tbl* (make-char-table 'test 0)) #^[0 nil test 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] ELISP> (ase
ELISP> (setq *test-tbl* (make-char-table 'test 0))
#^[0 nil test 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
ELISP> (aset *test-tbl* 3 5)
5
ELISP> *test-tbl*
#^[0 nil test
#^^[3 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
#^^[1 0
#^^[2 0
#^^[3 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
ELISP>
什么是
#^[…]
和#^[…]
?为什么我第一次创建char表时它是一维的,但在我设置了一些值之后,它变成了一个嵌套数组?为什么要使用char表?阅读它们的操作:M-:(info“(elisp)Char Tables”),如果您试图将它们用于某种程序存储,那么您没有正确使用它们。我在这里阅读:。我在REPL中尝试了它,并想了解它为何以这种方式表示。首先,当我创建它时,它是一个向量,但在使用aset
设置一些内容后,根据:和案例表更改为类似嵌套向量的内容。