6.2 数组

数组(array) 对象包含若干用于存放其他 Lisp 对象的槽位(slots),这些对象被称为数组的元素。访问数组中任意一个元素的时间都是常数时间。与之相对,访问列表中某个元素所需的时间与该元素在列表中的位置成正比。

Emacs 定义了四种一维数组类型:字符串(strings)(see 字符串类型)、向量(vectors)( see 向量类型)、布尔向量(bool-vectors)(see 布尔向量类型)以及 字符表(char-tables)(see 字符表类型)。 向量和字符表可以存放任意类型的元素;但字符串只能存放字符,布尔向量只能存放 tnil

这四类数组共同具备以下特性:

创建数组时,除字符表(char‑table)外,必须指定数组长度。你不能指定字符表的长度,因为其长度由字符码的范围决定。

理论上,如果你需要一个存放文本字符的数组,既可以使用字符串,也可以使用向量。但在实际使用中,我们总是选择字符串,原因有四点:

与之相对,对于键盘输入字符组成的数组(如按键序列),可能需要使用向量,因为许多键盘输入字符超出了字符串所能容纳的范围。See Key Sequence Input

emacs

Emacs

org-mode

Orgmode

Donations

打赏

Copyright

© 2025 Jasper Hsu

Creative Commons

Creative Commons

Attribute

Attribute

Noncommercial

Noncommercial

Share Alike

Share Alike