2.4.7 数组类型

array数组 由任意数量的槽位构成,用于存放或引用其他 Lisp 对象,这些槽位在内存中连续排列。访问数组中任意元素所花费的时间大致相同。与之相对,访问列表中的元素所需时间与元素在列表中的位置成正比。(列表末尾的元素比开头的元素访问耗时更长。)

Emacs 定义了四种数组:strings字符串、vectors向量、bool-vectors布尔向量和 char-tables字符表。

字符串是字符构成的数组,向量是可存放任意对象的数组。布尔向量只能存放 tnil。这类数组的长度上限为最大定长整数,具体受系统架构限制和可用内存影响。字符表是稀疏数组,使用任意有效字符编码作为索引;它们可以存放任意对象。

数组的第一个元素下标为 0,第二个元素下标为 1,依此类推。这称为 zero-origin从零开始 索引。例如,一个包含四个元素的数组,下标为 0、1、2、3。最大可用下标值为数组长度减一。数组一旦创建,其长度就固定不变。

所有 Emacs Lisp 数组都是一维的。(大多数其他编程语言支持多维数组,但这并非必需;你可以用嵌套的一维数组达到同样效果。)每种数组都有自己的读取语法;详情见后续小节。

数组类型是序列类型的子集,它包含字符串类型、向量类型、布尔向量类型和字符表类型。

emacs

Emacs

org-mode

Orgmode

Donations

打赏

Copyright

© 2025 Jasper Hsu

Creative Commons

Creative Commons

Attribute

Attribute

Noncommercial

Noncommercial

Share Alike

Share Alike