2017-08-23 5 views
0

enter code heretcl procで複数の配列を渡すには?

特定のタスクのために複数の配列をtcl procに渡したいと思います。

は、私は各アレイは、私が仕事 の下に実行することができていますが、作成する必要がPROCなければXYZ配列

ため

array set abc { 
     red true 
     blue false 
     green true 
     yellow false 
} 
array set pqr { 
     red false 
     blue true 
     green false 
     yellow true 
} 

同じ含まれてい

set array_names [list abc pqr xyz] 

アレイ名のリストを持っていると言います同じもののためのプロキシー

foreach RS $array_names { 
    foreach {arr_ind ind_value} [array get $RS] { 
     puts "set $RS\_$arr_ind $ind_value" 
}} 

これは、出力

set abc_yellow false 
set abc_blue false 
set abc_green true 
set abc_red true 
set pqr_yellow true 
set pqr_blue true 
set pqr_green false 
set pqr_red false 

答えて

2

あなたはこれを達成するためにupvarコマンドを利用することができます。

proc test {array_names} { 
     foreach elem $array_names { 
       upvar $elem __array 
       foreach {arr_ind ind_value} [array get __array] { 
         puts "set $elem\_$arr_ind $ind_value" 
       } 
     } 
} 

test $array_names 

リファレンスとしてプロシージャを呼び出します。upvar

関連する問題