两者都是概念上的关联图。
Tcl数组是复合变量,是简单变量的集合。每个变量可以包含任何值(不,变量不是值),并且数组由任意值索引。有没有自定义键的顺序。与任何变量一样,您可以在数组或数组的任何元素上设置跟踪。您也可以vwait在它们上。
TclX键控列表是一个包含其他值的值,并且按值建立索引(由于.用作结构化索引分隔符,因此存在一些限制)。我认为关键顺序是“插入顺序”,但我不是100%。键控列表元素没有特定的标识。
您可以将键控列表放入数组元素中,但根本不能将数组放入键控列表中。
最好使用哪个?这实际上取决于您在做什么。数组内置于Tcl本身;你总是有他们。键控列表取决于存在的TclX软件包。
从8.5开始,Tcl还内置了字典值。由于某些不幸的原因,他们在键控列表中使用了不同的语法。但是,它们还有更多的支持命令,并且它们支持字节码编译,从而使字典比键列表更快。但是,您仍然拥有数组,因为数组不是值,而字典不是变量。