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

Cor*_*mac 1 tcl

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

我正在经历一个非常大的数组,并希望在崩溃的情况下将进度记录到文件中,因此我可以再次中途恢复.

PS.一个快速的实验意味着它总是相同的"随机"顺序,但这并不意味着它是真的!

RHS*_*ger 5

简短的回答是,你不能依赖顺序和你最好的选择是[lsort [数组名称X]]并使用该命令.

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

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