我说Tcl中有一个数组
set count(a) b
set count(b) b
set count(c) b
set count(e) b
set count(d) b
set count(z) b
set count(m) b
Run Code Online (Sandbox Code Playgroud)
当我打印这个时,我得到了输出
array names count
d m e a z b c
Run Code Online (Sandbox Code Playgroud)
有没有办法可以获得我编写数组的相同顺序?
使用dict替代(大多数情况下,只是另一种语法):
dict set count a b
dict set count b b
dict set count c b
dict set count e b
dict set count d b
dict set count z b
dict set count m b
Run Code Online (Sandbox Code Playgroud)
以下按插入顺序打印键
% dict keys $count
a b c e d z m
Run Code Online (Sandbox Code Playgroud)
如果您想要两种方式,请分配到字典并在需要时重新创建数组
array unset countArray
array set countArray $count
Run Code Online (Sandbox Code Playgroud)
dict在Tcl 8.5中添加.虽然array从不保留其元素的插入顺序,但dict即使在稍后的分配之后,也会保留元素的原始插入顺序.
字典和数组都实现为哈希表,并且在功能上有一些重叠.但是,数组主要是变量的容器,并允许单独跟踪元素.字典是值的容器,可以与其他类型的数据互换(dict命令集合只能使用偶数大小的正确列表).
| 归档时间: |
|
| 查看次数: |
374 次 |
| 最近记录: |