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

Godot GDScript类型错误:传入Array[String]触发无效类型运行时报错

Godot GDScript 类型数组参数不匹配问题解析

你遇到的问题核心是:GDScript中字面量数组默认是无类型的Array,而非你预期的Array[String],类型检查会严格区分这两种数组类型,因此触发了参数类型不匹配的错误。

问题原因

  • 直接写出的["one", "two", "three"]属于动态无类型数组,它的元素可以是任意类型,Godot不会自动将其推断为静态类型的Array[String]。
  • 你的initialization函数声明要求接收Array[String],但传入的无类型Array无法通过严格的类型校验,因此报错。而移除类型提示后,函数接收任意类型数组,自然不再触发检查。

解决方法

有两种简单的方式可以解决这个问题:

  1. 显式转换数组类型
    在调用函数时,直接将字面量数组转为Array[String]:

    func _ready() -> void:
        var my_list = MYLIST.instantiate()
        add_child(my_list)
        my_list.initialization(Array[String](["one", "two", "three"]))
    
  2. 用类型变量存储数组
    先将数组赋值给带有Array[String]类型标注的变量,再传入函数:

    func _ready() -> void:
        var my_list = MYLIST.instantiate()
        add_child(my_list)
        var entries: Array[String] = ["one", "two", "three"]
        my_list.initialization(entries)
    

补充说明

保留函数的Array[String]类型提示是有意义的,它能帮你在开发阶段提前发现类型错误,避免运行时出现意外问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 03:37:05