TCL数组

数组是一组使用索引对应元素的排列方式。常规数组的语法如下所示。

set ArrayName(Index) value

用于创建简单数组的例子,如下所示。

#!/usr/bin/tclsh

set languages(0) Tcl

set languages(1) "C
Language"

puts $languages(0)

puts $languages(1)

当上述代码被执行时,它会产生以下结果。

Tcl

C Language

数组大小

用于计算数组大小的语法,如下所示。

[array size
variablename]

用于打印数组的大小的示例如下所示。

#!/usr/bin/tclsh

set languages(0) Tcl

set languages(1) "C
Language"

puts  [array size languages]

当上述代码被执行时,它会产生以下结果。

2

数组迭代

虽然数组索引可以是非连续的,像索引1,然后索引10等指定的值。但是如果它们是连续的,我们可以用数组迭代访问数组的元素。一个简单的数组迭代的打印元素,如下所示。

#!/usr/bin/tclsh

set languages(0) Tcl

set languages(1) "C
Language"

for { set index 0 }  { $index < [array
size languages] }  { incr index } {

puts "languages($index) : $languages($index)"

}

当上述代码被执行时,它会产生以下结果。

languages(0) : Tcl

languages(1) : C Language

关联数组

在TCL,所有数组本质是相关联的。数组存储并没有任何具体的顺序进行检索。关联数组使用索引但不一定都是数字。一个简单的例子,关联数组与非数字索引如下所示。

#!/usr/bin/tclsh

set personA(Name) "Dave"

set personA(Age) 14

puts  $personA(Name)

puts  $personA(Age)

当上述代码被执行时,它会产生以下结果。

Dave

14

数组的索引

用于检索数组索引的语法如下所示。

[array names
variablename]

用于打印数组的大小的示例如下所示。

#!/usr/bin/tclsh

set personA(Name) "Dave"

set personA(Age) 14

puts [array names personA]

当上述代码被执行时,它会产生以下结果。

Age Name

关联数组迭代

可以使用数组的索引来遍历数组。如下例子所示。

#!/usr/bin/tclsh

set personA(Name) "Dave"

set personA(Age) 14

foreach index [array names personA] {

puts "personA($index): $personA($index)"

}

当上述代码被执行时,它会产生以下结果。

personA(Age): 14

personA(Name): Dave

时间: 2024-08-05 14:34:55

TCL数组的相关文章

tcl之变量-unset 简单变量和数组

tcl之变量-数组array

Tcl学习之--列表|字典

[列表|字典] Tcl使用列表来处理各种集合,比如一个文件夹中的所有文件,以及一个组件的所有选项.最简单的列表就是包含由任意个空格.制表符.换行符.分隔的任意多个元素的字符串.比如: JerryAlice Mandy David l  lindex命令: --> 获取元素 至少需要两个参数,一个列表和一个索引值,返回取得的元素 如果列表中包含列表的话,访问子列表中的元素就要多个参数 l  llength命令: --> 获取长度 列表命令中可以把一个含有空白符的元素括在括号中,还可以使用反斜线来

Tcl学习之--语法|变量

[语法|变量] l 脚本.命令和单词 Tcl提供了大约100条命令,Tk提供了另外几十条,脚本包含一条或多条,通过换行符或分号分隔开. set a 12 set b 23 也可以写成一行: set a 12; set b 23 每个命令由多个单词组成,以空格来分隔,首字母为命令名,所以: 1. set -> 单词,同时也是命令名 2. a    -> 单词 3. 12  -> 单词,将该值赋予a l 处理命令 Tcl处理命令分两步: 解析和执行 1)  在解析阶段,Tcl进行一系列简单字

Tcl internal variables

Tcl internal variables [email protected] 在Tcl中内置了一些变量,并赋予了一定的功能.内置变量列表如下: 变量名称 功能描述 argc 指命令行参数的个数. argv 指包含命令行参数的列表. argv0 是指被解释的文件或由调用脚本的名称的文件名. env 用于表示是环境变量数组元素. errorCode 为最后的Tcl错误的错误代码. errorInfo 为最后Tcl错误的堆栈跟踪信息. tcl_interactive 分别将其设置为1和0交互和非交

Tcl学习之--命名空间

Tcl解释器将全部的命令和全局变量分组管理.这些小组称为命名空间,一个命名空间中的命令和变量不会影响到还有一个命名空间.这些命名空间呈树形组织.一个命名空间的命令能够被还有一个命名空间引入.命名空间树的根就是全局命名空间,它包括了没有明白在其它命名空间中创建的全部命令和变量. 不论什么已经存在的命名空间中的命令和变量.都能够从命名空间内部或外部创建. 在命令或变量的名称前面加上命名空间前缀就能够完毕这一点.前缀与名称之间以NameSpace::Var来分隔.若全局命名空间的名称是空字符串.通常仅

PHP文件格式数组

一个文件格式对应的数组 $mime_types = array( 'gif' => 'image/gif', 'jpg' => 'image/jpeg', 'jpeg' => 'image/jpeg', 'jpe' => 'image/jpeg', 'bmp' => 'image/bmp', 'png' => 'image/png', 'tif' => 'image/tiff', 'tiff' => 'image/tiff', 'pict' => 'i

Tcl学习之--流程控制|过程

l  switch命令: -->模式匹配 模式匹配,类似于if, elseif, else 第一个参数: 要检测的值 第二个参数: 一个或多个元素对的列表 看下下面三种表示方式: switch支持三种模式匹配的方式: -exact: 严格的字符串比较,默认 -glob: 全局匹配,参见stringmatch -regexp: 正则表达式匹配 --:标记选项结束 NOTE: 通常情况下,应该总是使用-选项来标记选项的结束,确保switch命令都能正确识别检测字符串 l  source命令: : -

TCL列表

列表是Tcl的基本可用数据类型之一.它是用于表示项目的有序集合.它可以包括不同类型的在同一列表的项目.此外,一个列表可以包含另一个列表. 需要注意的一个重要的事情是,列表表示为完全串并处理在需要时,形成的各个项目.所以要避免大的列表,在这种情况下,可使用数组代替. 创建一个列表 列表的一般语法如下. set listName { item1 item2 item3 .. itemn } # or set listName [list item1 item2 item3] # or set lis