我有一个用户“rbrown”和他的电子邮件地址变量“rbrownEmail”
我有一个包含“rbrown”的变量,但是我想连接用户名变量$ User(rbrown),以便它将Email添加到末尾,以便它等于变量“rbrownEmail”
有点像:
eval
将转换为:
puts "Sending email to the following $User at email address: $($User+Email)
(变量包含他的电子邮件地址)
如果这是有道理的,我只是不知道如何在TCL中做到这一点
答案 0 :(得分:1)
% set User rbrown
rbrown
% set rbrownEmail foo@bar.baz
foo@bar.baz
% puts "Sending email to the following $User at email address: [set ${User}Email]"
Sending email to the following rbrown at email address: foo@bar.baz
您需要在一个步骤(${User}Email
)中构造变量名称,并在第二步([set ...]
)中获取变量的值。 User
周围的大括号是必要的,以便在名称结束和字符串Email
开始时清楚显示。
如果您可以控制变量的命名方式,那么保存一段基本上由array
或dict
中的变量值编制索引的数据就更容易了(两者都是是关联结构)。
例如:
set User rbrown
set email($User) foo@bar.baz
puts "Sending email to the following $User at email address: $email($User)"