1

是否可以在 tcl 列表声明中使用变量?我有以下简单的例子:

set grape_color "green"

set produce_list {\
   { PRODUCE COLOR             REGION  }\
   { APPLE   "red"             TX }\
   { GRAPE   $grape_color      CA }\
}

puts $produce_list

代码的输出是这样的:

{ PRODUCE COLOR             REGION  } 
{ APPLE   "red"             TX }
{ GRAPE   $grape_color      CA }

但我想要“绿色”而不是$grape_color在列表中。

4

1 回答 1

5

一种方法是使用list命令。

set grape_color green
set produce_list [list \
    [list PRODUCE COLOR        REGION] \
    [list APPLE   red          TX] \
    [list GRAPE   $grape_color CA]]

另一种方法是使用subst命令。

set grape_color green
set produce_list {
    { PRODUCE COLOR        REGION }
    { APPLE   red          TX }
    { GRAPE   $grape_color CA }
}
set produce_list [subst -nobackslashes -nocommands $produce_list]
于 2013-04-22T02:59:42.467 回答