Skip to content

字典方法 API文档摘要

对于类型化字典,部分方法的参数类型应根据字典键值类型而变化,GDScript不会在传参时进行类型检查,类型不匹配时会造成预期外的情况

void assign(dictionary: Dictionary)

参数

  • dictionary:要拷贝内容的 Dictionary,可以是普通或类型化字典。

方法说明

用传入的字典替换(进行浅拷贝)当前字典的内容。如果是类型化字典,会尝试进行必要的类型转换。

void clear()

方法说明

清空字典中的所有键值对,相当于让它变成一个新的空字典。

Dictionary duplicate(deep: bool = false) const

参数

  • deep:是否进行深拷贝。为 true时会递归复制嵌套的 DictionaryArray

方法说明

返回该字典的副本,deep模式下嵌套的结构也会一起复制。


返回值

一个新的 Dictionary,内容与当前字典相同。

bool erase(key: Variant)

参数

  • key:要移除的键。

方法说明

如果存在对应的键,则将该键及其值从字典中删除。


返回值

一个布尔值,指示是否成功删除了键值对。

Variant find_key(value: Variant) const

参数

  • value:要查找的值。

方法说明

查找第一个关联的值等于value的键


返回值

找到的键,如果没有找到则为null

Variant get(key: Variant, default: Variant = null) const

参数

  • key:要查找的键。

  • default(可选):如果没有找到该键时要返回的默认值。


方法说明

返回 key对应的值,若键不存在则返回 default


返回值

对应的值或 default值。

Variant get_or_add(key: Variant, default: Variant = null)

参数说明

  • key:要查找或添加的键。

  • default(可选):如果键不存在,将插入并返回该默认值。


方法说明

如果 key已存在则返回它的值;否则插入key : default并返回default


返回值

键对应的值或插入的 default

int get_typed_key_builtin() const

方法说明

获取字典的键的类型(用 Variant.Type 的数字表示)。如果不是类型化的,就返回 TYPE_NIL


返回值

Variant.Type常量值,表示字典的键的类型

StringName get_typed_key_class_name() const

方法说明

获取键的内置类名;如果键不是对象类型就返回空字符串。


返回值

唯一字符串形式的键的类型,如果不是对象类型则返回空字符串

Variant get_typed_key_script() const

方法说明

获取键关联的脚本(Script)实例,没有则返回null


返回值

键所关联的脚本实例(Script类型),如果不存在则返回null

int get_typed_value_builtin() const

方法说明

获取字典的值的类型(用 Variant.Type 的数字表示)。如果不是类型化的,就返回 TYPE_NIL


返回值

Variant.Type常量值,表示字典的值的类型

StringName get_typed_value_class_name() const

方法说明

获取值的内置类名;如果值不是对象类型就返回空字符串。


返回值

唯一字符串形式的值的类型,如果不是对象类型则返回空字符串

Variant get_typed_value_script() const

方法说明

获取值关联的脚本(Script)实例,没有则返回null


返回值

值所关联的脚本实例(Script类型),如果不存在则返回null

bool has(key: Variant) const

参数

  • key:要检测的键。

方法说明

如果该字典包含给定的键 key,则返回 true。只要键存在,即使对应的值为null,也返回 true

在 GDScript 中,has() 等价于 in 运算符:


返回值

一个布尔值,指示给定的键是否存在于字典中


示例

bool has_all(keys: Array) const

参数

  • keys:包含多个键的数组。

方法说明

如果该字典包含 keys中的所有键,则返回 true


返回值

一个布尔值,指示给定数组中的所有键是否全都存在于字典中


示例

int hash() const

方法说明

返回一个 32 位整数,代表该字典内容的哈希值。

两个字典条目顺序不同哈希值也不同。哈希相同不保证内容完全相同,但哈希不同的字典一定不相同。


返回值

表示字典内容的 32 位哈希值。


示例

bool is_empty() const

方法说明

判断字典是否为空(无任何条目)。


返回值

字典为空时返回 true,否则返回 false

bool is_read_only() const

方法说明

判断字典是否只读。


返回值

字典为只读时返回 true,否则返回 false

bool is_same_typed(dictionary: Dictionary) const

参数

  • dictionary:另一个字典。

方法说明

判断当前字典与传入字典是否键和值的类型都相同。


返回值

类型相同返回 true,否则返回 false

bool is_same_typed_key(dictionary: Dictionary) const

参数

  • dictionary:另一个字典。

方法说明

判断当前字典与传入字典的键的类型是否相同。


返回值

键类型相同返回 true,否则返回 false

bool is_same_typed_value(dictionary: Dictionary) const

参数

  • dictionary:另一个字典。

方法说明

判断当前字典与传入字典的值的类型是否相同。


返回值

值类型相同返回 true,否则返回 false


bool is_typed() const

方法说明

判断该字典是否为类型化字典(键和值类型受限制)。


返回值

是类型化字典返回 true,否则 false


bool is_typed_key() const

方法说明

判断该字典的键是否有类型限制。


返回值

键有类型限制返回 true,否则 false


bool is_typed_value() const

方法说明

判断该字典的值是否有类型限制。


返回值

值有类型限制返回 true,否则 false

Array keys() const

方法说明

返回该字典中所有键的 Array


返回值

包含所有键的 Array

void make_read_only()

方法说明

将该字典设置为只读,禁止进一步修改。注意,对嵌套内容(如嵌套字典)无效。

void merge(dictionary: Dictionary, overwrite: bool = false)

参数

  • dictionary:要合并进当前字典的另一个字典。

  • overwrite(可选):是否覆盖已有键(默认为 false)。


方法说明

将另一个字典的内容合并到当前字典中。默认不会覆盖重复键,除非 overwritetrue。该方法不进行递归合并。


示例

Dictionary merged(dictionary: Dictionary, overwrite: bool = false) const

参数

  • dictionary:用于合并的新字典。

  • overwrite(可选):是否在遇到重复键时覆盖(默认为 false)。


方法说明

返回一个新的字典,包含当前字典与传入字典合并后的内容。与 merge() 不同,该方法不修改原始字典,而是返回合并结果的新副本。


返回值

合并后的 Dictionary副本。


示例

bool recursive_equal(dictionary: Dictionary, recursion_count: int) const

参数

  • dictionary:要进行比较的另一个字典。

  • recursion_count:最大递归深度。


方法说明

判断两个字典是否结构与内容都一致,包括内部嵌套的 DictionaryArray,会进行递归比较。


返回值

若所有键值都相等则返回 true,否则返回 false

bool set(key: Variant, value: Variant)

参数

  • key:要设置的键。

  • value:对应的新值。


方法说明

将键对应的值设为给定值,相当于 dict[key] = value

对于类型化字典,类型错误时不会报错


返回值

返回 true表示设置成功。

int size() const

方法说明

返回该字典中当前的条目数量。


返回值

条目的数量(整数)。

void sort()

方法说明

按键对字典原地排序,使转换为字符串或序列化时具有稳定顺序。适合用于有序输出或数据库存储。

Array values() const

方法说明

返回该字典中所有值组成的数组。


返回值

一个 Array,包含字典的所有值。