こんにちは、tcl アレイに関するヘルプが必要です。以下のような tcl に 2 つの手順があります。
proc A {} {
set lst_A [list];
if {true} {
lappend lst_A [::B $file1];
} else {
foreach id $allId {
lappend lst_A [::B $id];
}
}
return $lst_A;
}
proc B {fileID} {
set fileName [::getFileName $fileID]; # getFileName returns filename from fileid
set tcName "[set ItemName]_[set ItemId]";
array set tcArrayName {$fileName $tcSpec};
return $tcArrayName;
}
ここで、キーがある種のファイル ID であり、値がその ID に関連付けられた名前であるキーと値のペアになる配列を作成したいと考えています。条件が真の場合、事はproc Aにあります。1つのキーと値のペアのみで配列を作成し、その配列をlst_Aに追加します。この場合、1つのアイテム、つまり返される配列のみが含まれます。しかし、条件が false の場合は、いくつかの ID をループし、ID ごとに proc B を呼び出して配列を作成します。配列は、この場合は複数のキーと値のペアの配列を含む lst_A に追加されます。
そこで、tcl チュートリアルで配列について読んだ後、上記の 2 つの手順を書き、配列を作成しました。しかし、これが正しい方法なのか、最も最適化された方法なのかはわかりません。
私の最終的な目標は、lst_A を作成することです。条件が true の場合はキーと値のペアを 1 つだけ含む配列にするか、複数のキーと値のペアを含む配列にする必要があります。私はproc Bで配列を作成しているので、proc Bからキーと値のペアを配列として返し、その配列をリスト、つまりproc Aのlst_Aに追加することしか考えられませんでした.
助言がありますか???