var a = 5
# То же самое, что и
var a: Variant = 5
a = "я не int, но я тоже Variant" # Работает
如果该值是函数调用的结果,则可以从返回值推断出类型,但前提是函数指定了其类型:
func untyped():
return 5
var a1 := untyped() # Не работает
var a2: Variant = untyped() # Работает
func typed() -> int:
return 5
var a3 := typed() # Работает (тип int)
var a4 = typed() # Работает (тип Variant, потому что двоеточия нет)
func typed_variant() -> Variant:
return 5
var a5 := typed_variant() # Работает (тип Variant), но пишет предупреждение
var a6: Variant = typed_variant() # Работает без предупреждений
冒号指定变量的类型。如果未指定类型,Godot 将尝试从表达式自动推断它:
无法用另一种类型替换变量的值:
如果省略冒号,则变量的类型为Variant,这本质上意味着该值可以是任何类型:
如果该值是函数调用的结果,则可以从返回值推断出类型,但前提是函数指定了其类型:
在文档中阅读有关静态类型的更多信息:https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/static_typing.html