TCL数组

文章详细介绍了TCL中数组的定义、格式,包括单维数组的创建、赋值及显示,强调了数组变量的使用规则。还提到虽然TCL没有多维数组,但可以通过自定义实现类似功能。此外,讨论了数组操作命令如arrayget、arraynames以及如何遍历数组,并给出用数组定义结构的示例。
摘要由CSDN通过智能技术生成

1、数组的定义与格式

数组索引通过()来指定,每个数组元素变量名的格式是“数组名(索引值)”,数组元素采用set命令来定义和赋值。

语法:set arrName(index) value 或者 array set arrName {index1 value1 index2 value2....}

array set arr1 ""     #定义一个空数组
set array01(5) "hello world"  #定义数组 05为索引值 
puts $array01(5)
set array01(hello) world  #数组索引值为包括数字字符在内的所有合法字符构成的字符串。
array names array01    #显示数组元素名
array set arr2 {1 a 2 b 3 c 4 d}  #注意要成对出现

2、数组变量

可以使用和普通变量一样使用数组变量元素。如incr、lappend。但是注意不能将已定义为数组变量当成普通变量赋值,反之也不行。

set arr(1) 10
incr arr(1)
puts $arr(1)

 

set name arr
set ${name}(1) abc
puts $arr

可以使用替换获得数组名

3、多维数组

TCL中没有多维数组,但是可以自己定义。

set arr (0,0) 100
set arr (0,1) 200
parray arr

4、数组操作命令

4.1、array get命令:提取数组索引、元素值并将这些值对组织成一个列表。

注意:array set命令将一个列表(数据要成对)转换成一个数组。

4.2、array name 命令:

 返回所有元素索引名与模式pattern匹配的元素索引名列表

 4.3、遍历数组

可以用来对未知数组的每个元素进行操作。

array set a1 [list a AAA b BBB c CCC d DDD]  #将链表转换成数组
set l1 [array names a1]    #遍历输出
foreach id $l1 {
    puts "a1($id)= $a1($id)"
}

注意:array names返回元素索引的时候,最后一个元素的索引被放在了第一个位置。

4.4、用数组定义结构

Tcl语言中没有结构类型,可以通过数组定义来实现相似的功能。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值