list 这个概念在 TCL 中是用来表示集合的。 TCL 中 list 是由一堆元素组成的有序集合, list 可以嵌套定义, list 每个元素可以是任意字符串,也可以是 list。下面都是 TCL 中的合法的 list:
{} //空 list
{a b c d}
{a {b c} d} //list 可以嵌套
list 是 TCL 中比较重要的一种数据结构,对于编写复杂的脚本有很大的帮助, TCL 提供了很多基本命令对 list 进行操作,下面一一介绍:
语法: list ? value value...?
这个命令生成一个 list, list 的元素就是所有的 value。例:
■concat命令
语法:concat list ?list...?
这个命令把多个 list 合成一个 list,每个 list 变成新 list 的一个元素;
■lindex命令
语法: lindex list index
返回 list 的第 index 个(0-based)元素。例:
■llength命令
语法: llength list
返回 list 的元素个数。例:
■linsert命令
语法: linsert list index value ?value...?
返回一个新串,新串是把所有的 value 参数值插入 list 的第 index 个(0-based)元素之后得到。例:
■lreplace命令
语法: lreplace list first last ?value value ...?
返回一个新串,新串是把 list 的第 firs (0-based)t 到第 last 个(0-based)元素用所有的 value参数替换得到的。如果没有 value 参数,就表示删除第 first 到第 last 个元素。例:
■lrange 命令
语法:lrange list first last
返回 list 的第 first (0-based)到第 last (0-based)元素组成的串,如果 last 的值是 end。就是从第 first 个直到串的最后。例:
■lappend命令
语法: lappend varname value ?value...?
把每个 value 的值作为一个元素附加到变量 varname 后面,并返回变量的新值,如果 varname不存在,就生成这个变量。例:
■lsearch 命令
语法: lsearch ?-exact? ?-glob? ?-regexp? list pattern
返回 list 中第一个匹配模式 pattern 的元素的索引,如果找不到匹配就返回-1。 -exact、 -glob、-regexp 是三种模式匹配的技术。 -exact 表示精确匹配; -glob 的匹配方式和 string match命令的匹配方式相同,将在后面第八节介绍 string 命令时介绍; -regexp 表示正规表达式匹配,将在第八节介绍 regexp 命令时介绍。缺省时使用-glob 匹配。例:
■join命令
语法:join list ?joinString?
join 命令是命令的逆。这个命令把 list 的所有元素合并到一个字符串中,中间以 joinString 分开。缺省的 joinString 是空格。例: