Writing /share/Web/wiki/data/cache/d/d22289d406cba66cfb7abf57d116bf63.metadata failed
语法: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