请解释 Tcl 规则 5 中的示例
Please explain the example in Tcl's Rule 5
文档 (https://www.tcl.tk/man/tcl8.7/TclCmd/Tcl.htm) 说:
For instance, “cmd a {*}{b [c]} d {*}{$e f {g h}}”
is equivalent to “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}"
文档 (https://www.tcl.tk/man/tcl8.7/TclCmd/Tcl.htm) 说:
For instance,
“cmd a {*}{b [c]} d {*}{$e f {g h}}”
is equivalent to“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}"