GDScript静态类型

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

  

 

你可能感兴趣的:(GDScript静态类型)