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