我正在尝试替换列表中的变量:
% set a 1
1
% set b {1 $a}
1 $a
%
% set a 1
1
% set b [list 1 $a]
1 1
当我使用花括号{}
来定义列表时,变量'a'不会被其值替换,但在使用list
时会被替换。
使用使用定义的列表时,如何替换变量的值{}
?
% set a 1
1
% subst {1 $a}
1 1
% set b [subst {1 $a}]
1 1
但是大多数Tcl:ers实际上更喜欢list
在创建带有替换的列表值时使用,例如在第二次尝试中:
% set b [list 1 $a]
原因之一是subst
不会在值中保留列表结构:
% set a {a b}
a b
% set b [subst {1 $a}]
1 a b
% set b [list 1 $a]
1 {a b}
另一种可能性是使用双引号而不是大括号。这也不会保留列表结构。
% set b "1 $a"
1 a b
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句