可预测的对Tcl阵列名称的响应顺序?

时间:2009-06-15 11:05:32

标签: tcl

我知道[数组名称X]返回的名称是未定义的顺序,但是它们总是处于相同未定义的顺序中吗?

我正在浏览一个非常大的数组,并希望在发生崩溃时将进度记录到文件中,这样我就可以在中途重新开始。

PS。快速实验意味着它始终是相同的“随机”顺序,但这并不意味着它是真的!

1 个答案:

答案 0 :(得分:5)

简短的回答是你不能依赖订单而你最好的选择是[lsort [数组名称X]]并使用该订单。

答案很长,只要密钥相同(并且它的Tcl版本相同),订单应该是稳定的......但我仍然不会依赖它。

如果您使用的是Tcl 8.5或更高版本,则可能需要查看使用Dict而不是数组。 Dict的元素顺序是它们被添加的顺序。