2.4.8.4 字符串的文本属性

字符串中的字符可以拥有自己的文本属性。这种设计简化了不同缓冲区间拷贝时的文本属性处理。详情查阅文本属性。具有文本属性的字符串会有一种特别的读取和打印语法:

#("characters" property-data...)

其中 property-data 包含了 0个及以上的元素,这些元素都是三个一组的形式:

beg end plist

其中 beg元素 和 end 元素是整数,用来指明字符串中的范围;plist 是一个属性列表,用来描述这个范围内的文本属性。举个例子,

#("foo bar" 0 3 (face bold) 3 4 nil 4 7 (face italic))

表示了这样的一段文本 'foo bar',其中前三个字符有个 face 属性,其属性值是 bold (粗体);而后三个字符也有 face 属性,但值为 italic (斜体)。(第四个字符没有任何文本属性,因此属性列表是 nil。不过在这里,标记 没有文本属性的文字 是没有必要的,Emcas 会默认认为所有没有标记范围的字符没有文本属性。)

最后更新于