TCL 中的数组用法简介

TCL 语言中的数组与其他机器语言中的数组类似,其基本单元是由“元素索引”和“元素值”组成的 “键值对(key-value)” ;

其他语言中的数组索引一般都要求是整数,而 tcl 数组的元素索引可以是整数、浮点数、甚至任意的字符串,这个特点赋予了tcl 数组较大的灵活性,可以用数组来存取任意类型的数据组合,

比如 timing report 中的 endpoint 可以作为数组的key,这个endpoint的违例 slack 可以作为 value,组成一个由元素 (endpoint, slack)构成的二维数组;

然后数组值也可以是任意类型的数据,甚至可以是list,这样就可以构成一个多维数组;

1. 定义数组


array  set  ary01  “”  ; ## 初始化了一个空数组

array  set  ary01 {k1 Jack  k2 Mike  k3 Tony} ; ## 定义了一个由三组数据构成的数组,array set 会把list 自动转为 key-value 的格式

set  ary01(k6) Robin ;## 向数组中添加新元素

 

2. 访问数组

#####################

puts  $ary01(k2) ;   ## 使用键值访问数组内的单个元素, 注意使用 “$” 符号
>>  Mike

parray ary01 ;  ## 打印整个数组,包括 key & value
ary01(k1) = Jack
ary01(k2) = Mike
ary01(k3) = Tony
ary01(k6) = Robin

array names ary01 ; ## 打印所有键值,注意数组键值是乱序存储的,所以打印出来的也是乱序
>> k1 k6 k2 k3

array get ary01 ; ## 把键值对提取出来产生一个list,与 array set 命令的功能刚好是反过来的
>> k1 Jack k6 Robin k2 Mike k3 Tony

 

3. 其他常用的数组命令

array exists ary01 ; ## 判断数组是否存在,存在就返回1,不存在返回0
>> 1
array size ary01 ; ## 获取数组大小,返回值是 “键值对” 的个数
>> 4

 

 

 

 

 

 

 

 

|------------------------------------------------|

 

posted @ 2026-06-22 15:58  いつまでも  阅读(5)  评论(0)    收藏  举报