语法:tcl语法速查
差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
语法:tcl语法速查 [2025/02/20 21:10] – [4.8 string tolower] user01 | 语法:tcl语法速查 [2025/08/28 17:17] (当前版本) – [6.4 产生递进的二进制数] user01 | ||
---|---|---|---|
行 382: | 行 382: | ||
< | < | ||
string toupper string ?first? ?last? | string toupper string ?first? ?last? | ||
+ | </ | ||
+ | |||
+ | **转小写** | ||
+ | < | ||
+ | string tolower string ?first? ?last? | ||
</ | </ | ||
行 463: | 行 468: | ||
</ | </ | ||
+ | |||
+ | ==== - 产生递进的二进制数 ==== | ||
+ | |||
+ | <file tcl t3.tcl> | ||
+ | for {set i 0} {$i <16} {incr i} { | ||
+ | set hex_str [format " | ||
+ | puts -nonewline " | ||
+ | |||
+ | puts -nonewline " | ||
+ | for {set j 3} {$j >= 0} {incr j -1} { | ||
+ | set idx [expr 3-$j] | ||
+ | set bit_str [string range $hex_str $idx $idx] | ||
+ | puts -nonewline " | ||
+ | } | ||
+ | puts "" | ||
+ | } | ||
+ | </ | ||
+ | 运行结果: | ||
+ | |||
+ | < | ||
+ | hex_str = 0000 bit[3:0] = 0 0 0 0 | ||
+ | hex_str = 0001 bit[3:0] = 0 0 0 1 | ||
+ | hex_str = 0010 bit[3:0] = 0 0 1 0 | ||
+ | hex_str = 0011 bit[3:0] = 0 0 1 1 | ||
+ | hex_str = 0100 bit[3:0] = 0 1 0 0 | ||
+ | hex_str = 0101 bit[3:0] = 0 1 0 1 | ||
+ | hex_str = 0110 bit[3:0] = 0 1 1 0 | ||
+ | hex_str = 0111 bit[3:0] = 0 1 1 1 | ||
+ | hex_str = 1000 bit[3:0] = 1 0 0 0 | ||
+ | hex_str = 1001 bit[3:0] = 1 0 0 1 | ||
+ | hex_str = 1010 bit[3:0] = 1 0 1 0 | ||
+ | hex_str = 1011 bit[3:0] = 1 0 1 1 | ||
+ | hex_str = 1100 bit[3:0] = 1 1 0 0 | ||
+ | hex_str = 1101 bit[3:0] = 1 1 0 1 | ||
+ | hex_str = 1110 bit[3:0] = 1 1 1 0 | ||
+ | hex_str = 1111 bit[3:0] = 1 1 1 1 | ||
+ | </ | ||
==== - com_number set_bits get_bits ==== | ==== - com_number set_bits get_bits ==== | ||
行 657: | 行 699: | ||
% llength [concat $a $b $c] | % llength [concat $a $b $c] | ||
6 | 6 | ||
+ | |||
+ | |||
+ | # 注意lrange返回的是由first 到last元素组成的数据,如果原来的元素是数组,会被转换成字符串。 | ||
+ | % foreach i [lrange $c 0 0] { puts $i} | ||
+ | 1 2 | ||
+ | % set a [lrange $c 0 0] | ||
+ | {1 2} | ||
+ | % lindex $a 0; # a只有一个元素,那就是 “1 2”, a已经不是list了。 | ||
+ | 1 2 | ||
</ | </ | ||
行 894: | 行 945: | ||
+ | ==== - 生成连续数字list ==== | ||
+ | tcl语言并没有原生类似perl 1..10产生10个连续数字的语法,可以使用类似以下proc的方式产生。 | ||
+ | |||
+ | <code tcl> | ||
+ | proc range {start end} { | ||
+ | set list {} | ||
+ | for {set i $start} {$i <= $end} {incr i} { | ||
+ | lappend list $i | ||
+ | } | ||
+ | return $list | ||
+ | } | ||
+ | set numbers [range 1 10] ;# 生成 1 到 10 的列表 | ||
+ | </ | ||
语法/tcl语法速查.1740057032.txt.gz · 最后更改: 2025/02/20 21:10 由 user01