【TCL语言-列表及相关函数】

1、列表是元素的有序集合,
2、各个元素可以是任何字符串,每个元素由空格、制表符或换行符隔开,
3、在使用时通常用花括号将列表中的所有元素括起来。

1、创建 列表

列表的一般语法如下。

set listName { item1 item2 item3 .. itemn }
# or
set listName [list item1 item2 item3]
# or 
set listName [split "items separated by a character" split_character]

一些例子如下面给出。

#!/usr/bin/tclsh

set colorList1 {red green blue}
set colorList2 [list red green blue]
set colorList3 [split "red_green_blue" _]

puts $colorList1
puts $colorList2
puts $colorList3


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

2、列表 增加元素

追加项目到列表的语法如下。

append listName split_character value
# or
lappend listName value


一些例子如下面给出。

#!/usr/bin/tclsh

set var orange
append var " " "blue"
lappend var "red" 
lappend var "green" 
puts $var

当上述代码被执行时,它会产生以下结果
orange blue red green

3、列表 长度

列表长度的语法如下。

llength listName

例如,列表长度如下例所示。

#!/usr/bin/tclsh

set var {orange blue red green}
puts [llength $var] 

当执行上面的代码,产生以下结果
4

4、列表 索引

用于选择在指定索引的列表项如下。

lindex listname index

例如,列表索引项目如下所示。

#!/usr/bin/tclsh

set var {orange blue red green}
puts [lindex $var  1]

当执行上面的代码,产生以下结果:
blue

5、获取列表索引值之间的元素

语法:lrange 列表 索引号1 索引号2

功能:获取列表索引值之间的元素。

示例:

lrange  listname index1 index2
#!/usr/bin/tclsh

set var {orange blue red green}
puts [lrange $var  0 2]

当执行上面的代码,产生以下结果:
orange blue red

6、列表 插入元素 索引

在列表特定索引插入项目的语法如下。

linsert listname index value1 value2..valuen

例如,在列表特定的索引插入项目如下。

#!/usr/bin/tclsh

set var {orange blue red green}
set var [linsert  $var 3 black white]
puts $var

当执行上面的代码,产生以下结果:
orange blue red black white green

7、列表 替换 索引

用于替换列表项以特定索引的语法如下。

lreplace listname firstindex lastindex value1 value2..valuen

例如用于替换列表项以特定的索引如下。

#!/usr/bin/tclsh

set var {orange blue red green}
set var [lreplace $var 2 3 black white]
puts $var

当执行上面的代码,产生以下结果:
orange blue black white

8、设置指数项目

用于设置列表项在特定索引下面的语法给出。

lset listname index value 

例如设置列表项的索引具体如下。

#!/usr/bin/tclsh

set var {orange blue red green}
lset var 0 black 
puts $var

当执行上面的代码,产生以下结果:
black blue red green

9、转换列表变量

复制值到变量的语法如下。

lassign listname variable1 variable2.. variablen

例如,用于将列表到变量如下。

#!/usr/bin/tclsh

set var {orange blue red green}
lassign $var colour1 colour2
puts $colour1
puts $colour2

当执行上面的代码,产生以下结果:
orange
blue

10、列表 排序

排序列表的语法如下。

lsort listname

进行列表的排序如下例子。

#!/usr/bin/tclsh

set var {orange blue red green}
set var [lsort $var]
puts $var

当执行上面的代码,产生以下结果:
blue green orange red

11、搜索匹配目标的元素

语法:lsearch 控制选项 列表 待搜索的元素

功能:返回待搜索元素的索引号

控制选项:

-glob 按照 string match 命令的规则匹配搜索(默认)

-regexp 按照正则表达式规则匹配搜索

-exact 严格匹配搜索

-all 返回所有匹配的索引号(默认情况只返回第一个匹配的索引号)

-inline 返回匹配的元素而非索引号
set var {orange blue red green}
puts[slsearch -all -line $var o*]
输出结果:
orange
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tcl语言中,concat函数用于将多个字符串连接成一个字符串。在给定的引用\[1\]中,concat函数被用来将变量$x、$y和$z的值连接起来,并将结果赋给变量$m。最后,使用puts命令将变量$x、$y、$z和$m的值打印出来。 Tcl语言的全称是Tool Command Language,即工具命令语言。它是一种在EDA工具中广泛使用的语言,几乎每个EDA工具都支持Tcl语言。对于IC专业的人来说,学习Tcl语言是非常重要和必要的。在IC设计中,静态时序分析经常使用Synopsys Tcl语言,而其他FPGA厂商如Xilinx的.ucf文件和.xdc文件也是用Tcl语言编写的,与Synopsys的Tcl语言基本相同。在FPGA设计中,时序约束和静态时序分析经常使用Tcl语言。因此,学习Tcl语言为后续的时序约束和静态时序分析打下了基础。引用\[2\] Tcl语言的起源与发展可以追溯到1988年,由John K. Ousterhout在加州大学伯克利分校(UCB)开始开发。Tcl是为了可扩展性、学习曲线短和易于嵌入而设计的。Tk的开发始于1989年,第一个版本于1991年发布。引用\[3\] 总的来说,Tcl语言简单易懂,功能强大,常用于快速原型开发、GUI、脚本和测试。尽管Python的流行,但Tcl语言仍然在一些领域得到广泛应用。引用\[3\] #### 引用[.reference_title] - *1* *2* *3* [(80)TCL脚本命令【运算符(concat合并语法)】](https://blog.csdn.net/m0_46498597/article/details/128361738)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值