[GDScript]字典(Dictionary)的顺序
[GDScript]字典(Dictionary)的顺序
背景介绍
GDScript作为godot首选的脚本语言有着与python类似的语法。Dictionary自然也是必不可少的容器结构。然而多数语言的Dictionary实现通常基于hash table
, 无法实现有序排列。通常遇到有序需求时我们会选用Array
来替代。
按插入的顺序获取key
godot的Dictionary
在3.0
版本中追加了一个特性:遍历字典时保持插入顺序。记录以供参考。
例子
var dict = {}
dict["3"] = 1
dict["2"] = 1
dict["4"] = 1
dict["5"] = 1
dict["1"] = 1
dict.erase("4")
dict["4"] = 1
print("dict = ", dict)
for each in dict.keys():
print("curKey = ",each)
输出结果:
dict = (1:1), (2:1), (3:1), (4:1), (5:1)
curKey = 3
curKey = 2
curKey = 5
curKey = 1
curKey = 4
参考
1.[Wikipedia] Hash table
2.[Godot Q&A] Ordering / sorting objects in a dictionary?
(转发自:原日志地址)