list列表命令:整体上Tcl的列表类似python语言中的列表
set lt {abc {def {jkl ccc}}}
abc {def {jkl ccc}}
puts $lt
abc {def {jkl ccc}}
concat lt ghi
lt ghi
puts $lt
abc {def {jkl ccc}}
concat $lt ghi
abc {def {jkl ccc}} ghi
puts $lt
abc {def {jkl ccc}}
llength $lt
2
lrange $lt 1 2
{def {jkl ccc}}
lrange $lt 1 3
{def {jkl ccc}}
lrange $lt 0 1
abc {def {jkl ccc}}
linsert $lt 1 {www qqq}
abc {www qqq} {def {jkl ccc}}
puts $lt
abc {def {jkl ccc}}
注意:重点知识 Tcl命令中方括号用来表示先执行方括号中的角本再将结果作为参数
Vivado% puts $lt
abc {def {jkl ccc}}
Vivado% set newlt [linsert $lt 1 {eee rrr}]
abc {eee rrr} {def {jkl ccc}}
Vivado% puts $newlt
abc {eee rrr} {def {jkl ccc}}
注意 append字符串追加命令 不要用$lt 而要用lt
Vivado% set nlt [linsert $lt 1 {eee rrr}]
abc {eee rrr} {def {jkl ccc}}
Vivado% append nlt {hhh jjj}
abc {eee rrr} {def {jkl ccc}}hhh jjj
但是列表的追加命令是lappend,也有类似要求,列表变量名不要加$
Vivado% set nlt2 [linsert $lt 1 {eee rrr}]
abc {eee rrr} {def {jkl ccc}}
Vivado% lappend nlt2 {kkk {kkk LLL}}
abc {eee rrr} {def {jkl ccc}} {kkk {kkk LLL}}
Vivado% puts nlt2
nlt2
Vivado% puts $nlt2
abc {eee rrr} {def {jkl ccc}} {kkk {kkk LLL}}