3
proc test {a b c } {
puts $a
puts $b
puts $c
}
set test_dict [dict create a 2 b 3 c 4 d 5]
は今、私はこのようなテストに辞書を渡したい:test
にする方法多くの引数を持つ辞書をtclのprocに渡すには?
test $test_dict
はそのパラメータ(キー)の同じ名前の辞書での三つの要素を選択します。予想される出力は次のようになります。
2
3
4
それは辞書でa b c
なくd
を選択しているため。これどうやってするの?私はいくつかのコードがこのように見えるが、私はそれを動作させることはできません。
proc test {test_dic} {
puts [dict get $test_dic a]
puts [dict get $test_dic b]
puts [dict get $test_dic c]
}
set test_dict [dict create a 2 b 3 c 4 d 5]
test $test_dict
編集: 別の変形がdict with
を使用することです:
引数リストにはリストではなく個々の要素が含まれていますが、呼び出し時には1つの辞書だけが関数に渡されます。著者が、引数リストに渡されるときに辞書を拡張するためにいくつかの手法を使用したと思います。 – Amumu
+1と 'dict with' –
または' test_dict {test $ a $ b $ c} 'とdictしますが、呼び出し元を汚染します。 –