Godot-StartUP

创建于:2018-07-28

创建人: Justus

44 信息 154 成员
讨论基于Godot以及Unity引擎的游戏开发经验,理论和最佳实践。共享一些通用思路以启发另一种生产工具中的实践。独立开发群QQ: 122017359

[GDScript]字典(Dictionary)的顺序

Justus 2018-08-05

[GDScript]字典(Dictionary)的顺序

背景介绍

GDScript作为godot首选的脚本语言有着与python类似的语法。Dictionary自然也是必不可少的容器结构。然而多数语言的Dictionary实现通常基于hash table, 无法实现有序排列。通常遇到有序需求时我们会选用Array来替代。

按插入的顺序获取key

godot的Dictionary3.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?

(转发自:原日志地址
 

加入 indienova

  • 建立个人/工作室档案
  • 建立开发中的游戏档案
  • 关注个人/工作室动态
  • 寻找合作伙伴共同开发
  • 寻求线上发行
  • 更多服务……
登录/注册