tcl - 数组和键控列表有什么区别?

标签 tcl

谁能解释数组和键控列表之间的区别?在我看来,两者都在做同样的事情。

谁能区分这些?哪个最好用?

最佳答案

两者都是概念上的关联映射。

Tcl 数组是一个复合变量,它是简单变量的集合。每个变量可以包含任何值(不,变量不是值)并且数组由任意值索引。 没有定义键的顺序。与任何变量一样,您可以在数组或数组的任何元素上设置跟踪。您还可以对它们vwait

TclX 键控列表是一个包含其他值的值,它由值索引(有一些限制,因为 . 用作结构化索引分隔符)。我认为关键顺序是“插入顺序”,但我不是 100% 相信这一点。键控列表元素没有特定的标识。

您可以将键控列表放入数组元素中,但根本不能将数组放入键控列表中。

哪个最好用?这真的取决于你在做什么。数组内置于 Tcl 本身;你总是得到他们。键控列表取决于存在的 TclX 包。


从 8.5 开始,Tcl 中也内置了字典值;由于一些不幸的原因,他们对键控列表使用了不同的语法。然而,它们也有更多的支持命令,它们支持字节码编译,使字典比键控列表更快。不过,您仍然有数组,因为数组不是值,字典也不是变量。

关于tcl - 数组和键控列表有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24030547/

相关文章:

arrays - TCL 中的冒号和数组和命名空间

tcl - 将列表转换为数组

c++ - 根据索引和优先级对列表数量进行排序

performance - 我如何有效地(内存/时间)修改 Tcl 中列表的所有元素?

TCL : Concatenate a variable and a string

version-control - 在 Fossil 中修改工单时的电子邮件通知

string - 在 tcl 中连接两个字符串

tcl - Tk帧: how to deactivate internal handler for expose events?

tcl - 列出 Tcl 文件中所有过程的方法

widget - 将事件绑定(bind)到单个字符 tcl/tk