有人可以解释数组和键控列表之间的区别吗?在我看来,两者都是一样的。
任何人都可以区分这些吗?哪个最好用?
答案 0 :(得分:4)
两者都是概念上关联的地图。
Tcl数组是一个复合变量,它是简单变量的集合。每个变量可以包含任何值(不,变量不是值),并且数组由任意值索引。 没有定义了键的顺序。与任何变量一样,您可以在数组或数组的任何元素上设置跟踪。你也可以vwait
。
TclX键控列表是一个包含其他值的值,它由值索引(有一些限制,因为.
用作结构化索引分隔符)。我认为关键顺序是“插入订单”,但我不是100%。键控列表元素没有特定的标识。
您可以将键控列表放在数组元素中,但您根本无法将数组放入键控列表中。
哪个最好用?这取决于你正在做什么。数组内置于Tcl中;你总是得到它们。键控列表取决于存在的TclX包。
还有从8.5开始在Tcl中构建的字典值;他们对键控列表有不同的语法,原因有点不幸。但是,它们还有更多的支持命令,它们支持字节码编译,使字典比键控列表更快。你仍然有阵列,因为数组不是值,字典也不是变量。