array(3tcl) Tcl Built-In Commands array(3tcl)

array - 操纵数组变量

array option arrayName ?arg arg ...?

这个命令在由 arrayName 给出的变量上进行多种操作中的某一项。除了在后面为单独的命令(专门)指定之外,arrayName 必须是一个现存的数组变量的名字。option 选项决定命令完成何种动作。合法的选项(可以用缩写)有:
array anymore arrayName searchId
如果在一次数组查找中还有元素等待处理则返回 1,如果所有元素都被返回过了则返回 0。SearchId 指示在 arrayName 上检查哪个查找,它必须是从以前的 array startsearch 调用返回的值。如果一个数组的某个元素有空名字时这个选项特别有用,因为从 array nextelement 返回的值不能指示出查找是否完成。
array donesearch arrayName searchId
这个命令终止一个数组查找并销毁与这个查找有关的所有状态。SearchId 指示在 arrayName 上要要销毁哪个查找,必须时在以前调用 array startsearch 返回的值。返回一个空串。
array exists arrayName
如果 arrayName 是一个数组变量返回 1,如果没有叫这个名字的变量或是一个标量变量则返回 0。
array get arrayName ?pattern?
返回包含成对的元素的一个列表。每对的第一个元素是在 arrayName 中的元素名,每对的第二个元素是数组元素的值。没定义成对元素的次序。如果没指定 pattern,则数组的所有元素被包括在结果中,如果指定了 pattern,则结果中只包括那些名字匹配 patternn 的元素(使用 string match 的匹配规则)。如果 arrayName 不是一个数组变量的名字,或者数组不包含元素,则返回一个空列表。
array names arrayName ?pattern?
返回在一个列表,它包含数组中匹配 pattern 的所有元素的名字(使用 string match 匹配规则)。 如果省略了 pattern 则命令返回在数组中所有元素的名字。如果在数组中没有(匹配的)元素,或者 arrayNamee 不是一个数组变量的名字,则返回一个空串。
array nextelement arrayName searchId
返回在 arrayName 中下一个元素的名字,如果在这个查找中所有 arrayName 的元素都被已经被返回过了则返回空串。searchId 参数标识一个查找,并且必须是 array startsearch 命令的返回值。 警告: 如果从这个数组中添加或删除元素,那么自动的终止所有的查找,有如调用了 array donesearch,这将导致对这些查找的 array nextelement 操作失败。
array set arrayName list
设置在 arrayName 中的一个或多个元素的值。list 的形式必须与 array get 返回的相同,由偶数个元素组成的。在 list 中每个奇数元素被作为在 arrayName 中被作为一个元素名对待,后面跟随的 list 中的元素被作为这个数组元素的新值使用。如果变量 arrayName 不存在并且 list 是空, 建立是空值的 arrayName
array size arrayName
返回一个给出在一个数组中的元素个数的一个十进制数的字符串。如果 arrayName 不是一个数组的名字则返回 0。
array startsearch arrayName
这个命令在用 arrayName 给出的数组上初始化一个逐个元素的查找,调用 array nextelement 命令将返回在数组中单独元素的名字。在查找完成的时候,要调用 array donesearch 命令。返回值是一个在 array nextelementarray donesearch 命令中必须要用的查找标识符;对同一个数组允许多个查找同时进行。
array unset arrayName ?pattern?
在一个数组中删除匹配 pattern 的所有元素(使用 string match 的匹配规则)。如果 arrayName 不是一个数组变量的名字或在数组中没有匹配的元素,则返回一个空数组。如果是一个数组变量的名字并且省略了 pattern ,则命令删除整个数组。

array, element names, search

寒蝉退士

2001/06/22

http://cmpp.linuxforum.net

本页面中文版由中文 man 手册页计划提供。
中文 man 手册页计划:https://github.com/man-pages-zh/manpages-zh
8.3 Tcl