我知道[数组名称X]返回的名称是未定义的顺序,但是它们总是处于相同未定义的顺序中吗?
我正在浏览一个非常大的数组,并希望在发生崩溃时将进度记录到文件中,这样我就可以在中途重新开始。
PS。快速实验意味着它始终是相同的“随机”顺序,但这并不意味着它是真的!
答案 0 :(得分:5)
简短的回答是你不能依赖订单而你最好的选择是[lsort [数组名称X]]并使用该订单。
答案很长,只要密钥相同(并且它的Tcl版本相同),订单应该是稳定的......但我仍然不会依赖它。
如果您使用的是Tcl 8.5或更高版本,则可能需要查看使用Dict而不是数组。 Dict的元素顺序是它们被添加的顺序。