变量类

关于

variant是godot最重要的数据类型,它是引擎中最重要的类。一个变量只占用20个字节,并且可以在其中存储几乎任何引擎数据类型。变体很少用于长时间保存信息,而是主要用于通信、编辑、序列化和一般移动数据。

变量可以:

  • 存储几乎所有数据类型

  • 在多个变量之间执行操作(gdscript使用variant作为其原子/本机数据类型)。

  • 是散列的,所以可以很快地与其他变体进行比较

  • 用于在数据类型之间安全地转换

  • 用于抽象调用方法及其参数(godot通过变量导出其所有函数)

  • 用于延迟调用或在线程之间移动数据。

  • 以二进制形式序列化并存储到磁盘,或通过网络传输。

  • 序列化为文本,并将其用于打印值和可编辑设置。

  • 作为导出属性工作,因此编辑器可以对其进行通用编辑。

  • 用于字典、数组、分析器等。

基本上,多亏了变体类,编写Godot本身是一件容易得多的任务,因为它允许很少使用C++的高动态结构,而不是普通的C++。今天成为变种人的朋友。

参考文献:

容器:字典和数组

两者都是使用变体实现的。字典可以将用作键的任何数据类型与任何其他数据类型匹配。数组只包含一个变量数组。当然,变体还可以在内部保存字典和数组,使其更加灵活。

对容器的修改将修改对它的所有引用。如果需要多线程访问,应该创建互斥锁来锁定它。

使用godot 3.0放弃了对容器的copy-on-write(cow)模式支持。