文档(https://www.tcl.tk/man/tcl8.7/TclCmd/Tcl.htm)说:
例如,
“cmd a {*}{b [c]} d {*}{$e f {g h}}”
等效于“cmd a b {[c]} d {$e} f {g h}”
。
但是为什么替换后的$e
是花括号?那些是哪里来的(为什么单词[f
和{g h}
)中的其他参数不?]
$e
用括号括起来,无法对其进行评估。 f
和{g h}
不是变量,也不像c
那样放在方括号中,因此不需要它们。
这些示例还将全部扩展为同一事物:
cmd a {*}[list b {[c]}] d {*}[list {$e} f {g h}]
cmd a {*}[list b {[c]}] d {*}[list \$e f {g h}]
cmd a {*}{b [c]} d {*}"\$e f {g h}"