跳转至

GFDeque

API Reference / Standard / 类索引

  • 路径:addons/gf/standard/foundation/collections/gf_deque.gd
  • 模块:Standard
  • 继承:RefCounted
  • API:public
  • 类别:值对象 (value_object)
  • 首次版本:5.0.0

通用双端队列。 使用环形数组保存队列内容,支持从头尾 O(1) 追加、读取和移除。 它只维护元素顺序和容量,不解释任务、历史、动画或业务载荷语义。

成员概览

类型 名称 签名
常量 DEFAULT_CAPACITY const DEFAULT_CAPACITY: int = 8
方法 from_array static func from_array(values: Array, initial_capacity: int = 0) -> RefCounted:
方法 push_front func push_front(value: Variant) -> void:
方法 push_back func push_back(value: Variant) -> void:
方法 pop_front func pop_front(default_value: Variant = null) -> Variant:
方法 pop_back func pop_back(default_value: Variant = null) -> Variant:
方法 peek_front func peek_front(default_value: Variant = null) -> Variant:
方法 peek_back func peek_back(default_value: Variant = null) -> Variant:
方法 at func at(index: int, default_value: Variant = null) -> Variant:
方法 set_at func set_at(index: int, value: Variant) -> bool:
方法 reserve func reserve(min_capacity: int) -> void:
方法 trim_front func trim_front(max_size: int) -> int:
方法 trim_back func trim_back(max_size: int) -> int:
方法 clear func clear() -> void:
方法 is_empty func is_empty() -> bool:
方法 size func size() -> int:
方法 capacity func capacity() -> int:
方法 to_array func to_array(deep: bool = false) -> Array:
方法 duplicate_deque func duplicate_deque(deep: bool = false) -> RefCounted:
方法 get_debug_snapshot func get_debug_snapshot() -> Dictionary:

常量

DEFAULT_CAPACITY

  • API:public
  • 首次版本:5.0.0
const DEFAULT_CAPACITY: int = 8

默认底层容量。

方法

from_array

  • API:public
  • 首次版本:5.0.0
static func from_array(values: Array, initial_capacity: int = 0) -> RefCounted:

从数组创建双端队列。

参数:

名称 说明
values 按队列顺序写入的初始元素。
initial_capacity 初始容量;小于元素数量时会自动扩容。

返回:新双端队列;实际对象类型为 GFDeque。

结构:

  • values: Array of queue values copied by reference.
  • return: RefCounted GFDeque instance.

push_front

  • API:public
  • 首次版本:5.0.0
func push_front(value: Variant) -> void:

在队头追加元素。

参数:

名称 说明
value 要追加的元素。

结构:

  • value: Variant queue value.

push_back

  • API:public
  • 首次版本:5.0.0
func push_back(value: Variant) -> void:

在队尾追加元素。

参数:

名称 说明
value 要追加的元素。

结构:

  • value: Variant queue value.

pop_front

  • API:public
  • 首次版本:5.0.0
func pop_front(default_value: Variant = null) -> Variant:

移除并返回队头元素。

参数:

名称 说明
default_value 队列为空时返回的默认值。

返回:队头元素或默认值。

结构:

  • default_value: Variant fallback value.
  • return: Variant queue value or fallback value.

pop_back

  • API:public
  • 首次版本:5.0.0
func pop_back(default_value: Variant = null) -> Variant:

移除并返回队尾元素。

参数:

名称 说明
default_value 队列为空时返回的默认值。

返回:队尾元素或默认值。

结构:

  • default_value: Variant fallback value.
  • return: Variant queue value or fallback value.

peek_front

  • API:public
  • 首次版本:5.0.0
func peek_front(default_value: Variant = null) -> Variant:

读取队头元素但不移除。

参数:

名称 说明
default_value 队列为空时返回的默认值。

返回:队头元素或默认值。

结构:

  • default_value: Variant fallback value.
  • return: Variant queue value or fallback value.

peek_back

  • API:public
  • 首次版本:5.0.0
func peek_back(default_value: Variant = null) -> Variant:

读取队尾元素但不移除。

参数:

名称 说明
default_value 队列为空时返回的默认值。

返回:队尾元素或默认值。

结构:

  • default_value: Variant fallback value.
  • return: Variant queue value or fallback value.

at

  • API:public
  • 首次版本:5.0.0
func at(index: int, default_value: Variant = null) -> Variant:

按队列顺序读取元素。

参数:

名称 说明
index 队列顺序索引;负数从队尾倒数。
default_value 索引越界时返回的默认值。

返回:对应元素或默认值。

结构:

  • default_value: Variant fallback value.
  • return: Variant queue value or fallback value.

set_at

  • API:public
  • 首次版本:5.0.0
func set_at(index: int, value: Variant) -> bool:

按队列顺序替换元素。

参数:

名称 说明
index 队列顺序索引;负数从队尾倒数。
value 新元素。

返回:替换成功返回 true。

结构:

  • value: Variant queue value.

reserve

  • API:public
  • 首次版本:5.0.0
func reserve(min_capacity: int) -> void:

至少保留指定底层容量。

参数:

名称 说明
min_capacity 最小底层容量。

trim_front

  • API:public
  • 首次版本:5.0.0
func trim_front(max_size: int) -> int:

从队头裁剪多余元素,使队列最多保留 max_size 个元素。

参数:

名称 说明
max_size 保留数量;小于 0 时不裁剪。

返回:实际移除数量。

trim_back

  • API:public
  • 首次版本:5.0.0
func trim_back(max_size: int) -> int:

从队尾裁剪多余元素,使队列最多保留 max_size 个元素。

参数:

名称 说明
max_size 保留数量;小于 0 时不裁剪。

返回:实际移除数量。

clear

  • API:public
  • 首次版本:5.0.0
func clear() -> void:

清空队列。

is_empty

  • API:public
  • 首次版本:5.0.0
func is_empty() -> bool:

队列是否为空。

返回:为空返回 true。

size

  • API:public
  • 首次版本:5.0.0
func size() -> int:

获取元素数量。

返回:元素数量。

capacity

  • API:public
  • 首次版本:5.0.0
func capacity() -> int:

获取底层容量。

返回:底层容量。

to_array

  • API:public
  • 首次版本:5.0.0
func to_array(deep: bool = false) -> Array:

按队列顺序导出数组。

参数:

名称 说明
deep 为 true 时深拷贝元素中的 Array、Dictionary、Object Resource 等可复制值。

返回:队列元素数组。

结构:

  • return: Array of queue values in front-to-back order.

duplicate_deque

  • API:public
  • 首次版本:5.0.0
func duplicate_deque(deep: bool = false) -> RefCounted:

复制双端队列。

参数:

名称 说明
deep 为 true 时深拷贝元素中的 Array、Dictionary、Object Resource 等可复制值。

返回:新双端队列;实际对象类型为 GFDeque。

结构:

  • return: RefCounted GFDeque instance.

get_debug_snapshot

  • API:public
  • 首次版本:5.0.0
func get_debug_snapshot() -> Dictionary:

获取调试快照。

返回:调试信息字典。

结构:

  • return: Dictionary with size, capacity, and front_index.