引用函数

2024 年 8 月 29 日 | 5 分钟阅读

出于性能原因,它们不能存储在变量中,作为参数传递给另一个服务,或者从其他函数返回。

要在运行时通过其名称引用一个函数(例如,将其存储在变量中,或将其作为参数传递给另一个函数),必须使用 callfuncref 帮助程序

记住默认函数,如 _init,以及大多数通知,例如 _enter_tree_exit_tree_process_physics_process 等,都会在所有基类中自动调用。因此,只有在以某种方式重载它们时才需要显式调用该函数。

静态函数

一个函数总是声明为静态。当一个函数是静态的时候,它就不能访问实例成员变量或 self。这用于制作助手函数的库;

语句和控制流程

它们是标准的,可以是赋值、函数调用、控制流结构等。(见下文) ; 作为一个语句,分隔符是完全可选的。

If/else/elif

使用 if/else/elif 语法创建简单的条件。条件周围的括号是被允许的,但不是必需的。鉴于基于制表的缩进的性质,可以使用 elif 代替 else/if 来保持缩进级别。

短语句可以写在与条件相同的行上

有时我们可能希望根据布尔表达式分配不同的初始值。在这种情况下,三元 if 表达式很方便

while

循环使用 while 语法创建。可以使用 break 中断循环,或使用 continue 继续循环

while [表达式]

    语句

for

要遍历一个范围,比如一个数组或表格,需要使用 for 循环。当遍历数组时,数组元素将被存储在循环变量中。当遍历字典时,索引会被存储在循环变量中。

匹配

一个 match 语句用于分支程序的执行。它等同于许多其他语言中找到的 switch 语句,但提供了一些附加功能。

语法

Switch 语句

  1. switch 替换为 match
  2. 移除 case
  3. 移除任何 break。如果我们不想默认 break,我们可以使用 continue 来继续执行。
  4. default 更改为单个下划线。

控制流

该模式是从上到下匹配的。如果一个模式匹配,则执行在 match 语句下继续。

如果我们要有一个 fall through,我们可以使用 continue停止 在当前块中的执行并检查其下方的块。

有六种模式类型

  • 常量模式
    常量基元是数字和字符串
  • 变量模式
    它匹配变量/枚举的内容
  • 通配符模式
    此模式匹配所有内容。它写成一个下划线。
    它被用作其他语言中 switch 语句中的 default 的等价物。
  • 绑定模式
    绑定模式引入了一个新变量。像通配符模式一样,它匹配所有内容,并且还给该值一个名称。它在数组和字典中很有用。
  • 数组模式
    数组模式中的每一个元素本身就是一个模式,所以我们可以嵌套它们。测试数组的长度;它必须与模式的大小相同;否则,它无法匹配。
    开放式数组:通过使最后一个子模式,数组比模式更大。
    每个子模式由逗号分隔。
  • 字典模式
    它与数组模式的工作方式相同。每个键都有一个常量模式。测试字典的大小;首先,它的大小与模式相同;否则,该模式不匹配。
    开放式字典:通过制作前面的子模式,字典可以比模式更重要...
    每个子模式必须用逗号分隔。
    如果我们没有指定一个值,那么只检查键的存在。
    一个值模式与一个键模式由 a 分隔

多模式

我们还可以指定由逗号分隔的多个模式。这些模式不允许在其中有任何绑定。


下一主题GDscript 中的类