You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GDScript中实现带类型约束的嵌套结构?

解决GDScript嵌套结构实现问题

一、正确的嵌套字典实现

你之前的字典写法错误在于GDScript的字典键值对必须用:分隔,而非=,嵌套字典同样遵循该语法规则:

# 可正常运行的嵌套字典
var struct = {
    foo: 1,
    nested: {
        bar: 2
    }
}

后续需要修改值时,直接通过键访问赋值:

struct.foo = 3
struct.nested.bar = 4

二、带类型约束的类实现(支持外部赋值)

你之前的类写法存在两个核心问题:

  • GDScript中不存在Number类型,需根据实际场景使用int(整数)或float(浮点数);
  • 使用static变量会让所有类实例共享同一个值,若要支持外部为每个实例单独赋值,必须使用实例变量,且嵌套类需要先实例化才能访问其成员。

正确的实现代码如下:

class Struct:
    var foo: int # 若需浮点型则改为 float
    var inner: Inner # 声明嵌套类的类型

    # 构造函数,初始化嵌套类实例
    func _init():
        inner = Inner.new()

class Inner:
    var bar: int # 同理可改为 float

使用时需先实例化外部类,再进行变量赋值或访问:

var my_struct = Struct.new()
my_struct.foo = 5 # 外部给顶层变量赋值
my_struct.inner.bar = 6 # 给嵌套类的变量赋值

若部分变量无需初始值,仅声明类型即可,GDScript会自动赋予对应类型的默认值(整数默认0、浮点数默认0.0、对象默认null),后续可通过外部操作随时赋值。

内容的提问来源于stack exchange,提问作者Seph Reed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 04:14:54