1

私はTCLを初めて使用し、自分で少し練習しています。現在、TCL で配列を読み込んでいて、配列を反転させようとしています。配列 TestArr は

Zero Orange
First Apple
Second Banana

だから、基本的には作りたい

Zero Banana
First Apple
Second Orange

foreach {index value} [array get TestArr]しかし、使用するとインデックス値が順不同で返される ため、最初の要素のインデックスまたは最後の要素のインデックスを見つける方法が見つかりません 。

C++ コードは次のようになります。

 for(int i=0;i>end;end--,i++)
 {
    int temp = TestArr[i];
    TestArr[i] = TestArr[j];
    TestArr[j] = temp;
 }

TCLでこれを達成する方法はありますか?

4

1 に答える 1

3

TCL では、「配列」は実際にhash mapは perl で a std::map、C++ で a 、またはdictpython で a と呼ばれるものです。そのため、それらは順序付けされていないため、並べ替えても意味がありません。

実際に必要なものはlist、TCL では a と呼ばれます。リストを逆にする関数は と呼ばれlreverseます。

TCL リストのドキュメント

lreverseドキュメンテーション

以下のコメントから:

lreverse8.5で追加されました。8.4 では、次のように自分でコーディングします。for {set i [llength $lst]} {[incr i -1] >= 0} {} {lappend reversed [lindex $lst $i]}-- Donal Fellows

于 2012-07-16T03:24:54.550 に答える