如何在TCL中反转数组

如何在TCL中反转数组,tcl,Tcl,我是TCL的新手,一直在自己练习。现在,我正在阅读TCL中的数组,我正在尝试反转数组。数组TestArr是 Zero Orange First Apple Second Banana 所以,基本上我想做到 Zero Banana First Apple Second Orange 但是,我找不到找到第一个元素的索引或最后一个元素的索引的方法,因为使用 foreach{index value}[array get TestArr]将按顺序返回索引值 < > C++代码将是: for(int

我是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中有什么方法可以实现吗?

< P>在TCL中,“数组”实际上是Perl中的一个代码< >代码>散列图或<代码> STD::在Python中用C++或代码< > DIST</代码>。因此,它们是无序的,因此对它们进行重新排序是没有意义的

在TCL中,您真正需要的是一个
列表。反转列表的函数称为
lreverse

从以下评论中:


lreverse
已添加到8.5中。在8.4中,您可以自己编写这样的代码:
对于{set i[llength$lst]}{[incr i-1]>=0}{lappend reversed[lindex$lst$i]}
--

在TCL中,数组实际上是一个哈希映射或dict,您真正想要的是一个列表。因此,它们是无序的。您希望数组键被称为
Zero
First
、和
Second
,这是有原因的吗?或者您真的希望像OmnipropertEntity建议的那样有一个列表吗?谢谢,我会研究的!当我尝试使用lreverse时,它会显示无效的命令名“lreverse”,您如何尝试使用它?你查阅过文件了吗?TCL的哪个版本?我看到文档是针对TCL 8.5.11的。这可能是8.5中添加了/
lreverse
的原因。在8.4中,您自己用类似这样的代码进行编码:
for{set i[llength$lst]}{[incr i-1]>=0}{{lappend reversed[lindex$lst$i]}