环境及版本:Windows10,Godot 4.2.1.stable
一、声明变量时的类型注释问题
var tree = get_tree()
var name := tree.current_scene.scene_file_path.get_file().get_basename()
上述代码通过场景树来获取当前场景的名称,产生如下错误:
Parse Error: Cannot infer the type of "name" variable because the value doesn't have a set type.
译为:无法推断“name”变量的类型,因为该值没有设置类型
二、解决方法
# 方案一
var tree := get_tree()
var old_name := tree.current_scene.scene_file_path.get_file().get_basename()
# 方案二
var tree = get_tree()
var old_name = tree.current_scene.scene_file_path.get_file().get_basename()
# 方案三
var tree = get_tree()
var old_name: String = tree.current_scene.scene_file_path.get_file().get_basename()
三、原因
未知(大失败),大概是个语法盐,用来规范代码,‘:=’应该为忽略类型注释的普通赋值,和直接赋值‘=’作用相同,但全网搜索以及gpt都没有结果,鉴于比较好解决就暂且搁置,希望有大神或遇到同类问题知道原因后解决的朋友能看见