2013-05-30 56 views
1

我有一個具有相同前綴的變量。例如:tcl讀取具有相同前綴的變量

set prefix1Postfix 89 
set prefix2Postfix 56 
set prefix3Postfix 56 

所以是有可能在它們之間迭代通過這種方式:

set l [list prefix1 prefix2 prefix3] 

foreach item $l { 
    puts "item = ${{$l}Postfix}" 
} 

回答

3

沒有,TCL的解釋{$l部分作爲變量的第一個開幕後和右括號遇到:

puts "item = ${{$l}Postfix}" 
       ^---^ 

和變量應該是$item爲好;)的支撐也可以防止替代,從而使TCL將尋找文字$item如果你使用大括號。您可以使用

一種解決方法是一個變量分配給後綴:

set prefix1Postfix 89 
set prefix2Postfix 56 
set prefix3Postfix 56 

set l [list prefix1 prefix2 prefix3] 
set p "Postfix" 

foreach item $l { 
    puts "item = [set $item$p]" 
} 
3

在這種情況下,一般的建議是,它更容易使用數組

set prefixPostfix(1) 89 
set prefixPostfix(2) 56 
set prefixPostfix(3) 56 

foreach key [array names prefixPostfix] { 
    do something with $prefixPostfix($key) 
} 
相關問題