如何在TCL中反转数组
我是TCL的新手,一直在自己练习。现在,我正在阅读TCL中的数组,我正在尝试反转数组。数组TestArr是如何在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
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]}