Godot 3.1开始支持静态类型,可以用于变量、常量、函数参数和返回类型
不使用静态类型:
var delta = Vector2.ONE const MAX_TIME = 59.0 func my_func(node): return node
使用静态类型:
var delta: Vector2 = Vector2.ONE const MAX_TIME: float = 59.0 func my_func(node: MyNode) -> MyNode: return node
简写:
var delta := Vector2.ONE const MAX_TIME := 59.0
使用简写时,Godot会自动推导类型,支持内置类型、核心类、节点类,以及自定义类型(使用class_name关键字注册)
自定义类型:
extends Node class_name MyNode
使用静态类型的好处:
1.调用函数以及使用传入的参数时可以获得代码提示
2.编辑器提供类型警告
3.类型转换(基类->派生类):
func my_func(node: Node) -> void: var my_node := node as MyNode if not my_node: return else: print("Is my node")
4.提高代码性能
静态类型的限制:
1.不能用于枚举类型
2.不能用于分别指定每个数组元素的类型
3.不能用于for...in(与上一点含义相同)
4.不能形成循环依赖,如:
# MyNode1 extends Node class_name MyNode1 var my_node2: MyNode2
# MyNode2 extends Node class_name MyNode2 var my_node1: MyNode1
原文:https://www.cnblogs.com/yl-xy/p/13511560.html