Godot GDScript类型错误:传入Array[String]触发无效类型运行时报错
Godot GDScript 类型数组参数不匹配问题解析
你遇到的问题核心是:GDScript中字面量数组默认是无类型的Array,而非你预期的Array[String],类型检查会严格区分这两种数组类型,因此触发了参数类型不匹配的错误。
问题原因
- 直接写出的
["one", "two", "three"]属于动态无类型数组,它的元素可以是任意类型,Godot不会自动将其推断为静态类型的Array[String]。 - 你的
initialization函数声明要求接收Array[String],但传入的无类型Array无法通过严格的类型校验,因此报错。而移除类型提示后,函数接收任意类型数组,自然不再触发检查。
解决方法
有两种简单的方式可以解决这个问题:
显式转换数组类型
在调用函数时,直接将字面量数组转为Array[String]:func _ready() -> void: var my_list = MYLIST.instantiate() add_child(my_list) my_list.initialization(Array[String](["one", "two", "three"]))用类型变量存储数组
先将数组赋值给带有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
相关产品推荐
相关产品推荐

