如何避免错误的变量?

时间:2018-07-24 14:50:13

标签: tcl

我正在尝试使用变量设置文件名,但是如果我在变量名后的文件名中使用下划线,它将使用_作为变量名的一部分:

例如:

set var sometext
set filename "$var_a.txt"

问题是,现在它不能调用名为var_a的变量 有没有一种方法可以强制不以_结尾的订阅,而无需使用append命令(如果可能,我希望将其整齐地保持在一行上)。我不能使用concat,因为它会在两个值之间放置一个空格

感谢帮助

3 个答案:

答案 0 :(得分:2)

最干净的方法是分隔变量名称:

set filename "${var}_a.txt"

答案 1 :(得分:1)

有时候,最好使用format处理一组复杂的替换:

set var sometext
set filename [format "%s_a.txt" $var]

答案 2 :(得分:0)

有时候,异地替换/组装既方便又健壮:

append filename $var "_a.text"

或者,从Tcl 8.6开始,没有接收变量

string cat $var "_a.text"