4.GDscript(2)关键字,运算符,字面量
(来源godot官方文档)
关键词
下面是该语言支持的关键字列表。由于关键字是保留字(令牌),它们不能用作标识符。操作符(如 in
, not
, and
或 or
)以及下面列出的内置类型的名称也是保留的。
关键字定义在 GDScript tokenizer 中,以防您想了解其中的内幕。
关键字 | 描述 |
---|---|
if | 见 if/else/elif. |
elif | 见 if/else/elif. |
else | 见 if/else/elif. |
for | 见 for. |
do | 预留作日后实施do…while循环。 |
while | 见 while. |
match | 见 match. |
switch | 保留以备将来使用。 |
case | 保留以备将来使用。 |
break | 退出当前“for”或“while”循环的执行。 |
continue | 立即跳到“for”或“while”循环的下一个迭代。 |
pass | 在语法上要求语句但不希望执行代码的地方使用,例如在空函数中。 |
return | 从函数返回一个值。 |
class | 定义一个类。 |
extends | 定义用当前类扩展什么类。 |
is | 测试变量是扩展给定的类,还是具有给定的内置类型。 |
as | 如果可能,将值转换为给定类型。 |
self | 引用当前类实例。 |
tool | 在编辑器中执行脚本。 |
signal | 定义一个信号。 |
func | 定义一个函数。 |
static | 定义一个静态函数。静态成员变量是不允许的。 |
const | 定义一个常量。 |
enum | 定义一个枚举。 |
var | 定义一个变量。 |
onready | 在脚本所附加的节点及其子节点成为场景树的一部分后初始化变量。 |
export | 保存一个变量及其附加的资源,并使其在编辑器中可见和可修改。 |
setget | 为变量定义setter和getter函数。 |
breakpoint | 调试器断点的编辑器助手。 |
preload | 预加载类或变量。请参见 Classes as resources. |
yield | 协同程序支持。参见 Coroutines with yield. |
assert | 声明一个条件,在失败时记录错误。在非调试构建中被忽略。参见 Assert keyword. |
remote | 网络RPC注释。参见 high-level multiplayer docs. |
master | 网络RPC注释。参见 high-level multiplayer docs. |
puppet | 网络RPC注释。参见 high-level multiplayer docs. |
remotesync | 网络RPC注释。参见 high-level multiplayer docs. |
mastersync | 网络RPC注释。参见 high-level multiplayer docs. |
puppetsync | 网络RPC注释。参见 high-level multiplayer docs. |
PI | 圆周率常量。 |
TAU | TAU 常量。 |
INF | 无穷大常数。用于比较。 |
NAN | NAN(不是一个数字)常数。用于比较。 |
运算符
下面是支持运算符的列表及其优先级。
运算符 | 描述 |
x[index] |
索引,最高优先级 |
x.attribute |
属性引用 |
is |
实例类型检查器 |
~ |
按位取反 |
-x |
负/一元否定 |
* / % |
乘法/除法/余数 这些操作符具有与c++相同的行为。整数除法被截断,而不是返回一个小数,%运算符只对整数可用(浮点数用“fmod”) |
+ |
加法/数组的串联 |
- |
Subtraction |
<< >> |
位移位 |
& |
按位与 |
^ |
按位异或 |
| |
按位或 |
< > == != >= <= |
比较 |
in |
内容测试 |
! not |
布尔NOT |
and && |
布尔AND |
or || |
布尔OR |
if x else |
三元 if/else |
= += -= *= /= %= &= |= |
作业,最低优先级 |
字面量
字面量 | 类型 |
45 |
基数为10的整数 |
0x8F51 |
基数16(十六进制)整数 |
3.14 , 58.1e-10 |
浮点数(实数) |
"Hello" , "Hi" |
字符串 |
"""你好""" |
多行字符串 |
@"Node/Label" |
节点路径和字符串名称 |
$NodePath |
get_node("NodePath") 的速记 |
笔者:宸少凌
注释
任何从
#
开始到行尾的内容都会被忽略,并被视为注释。# This is a comment.
可以在文本块的开头和结尾使用”“”(一行三个引号)创建多行注释。注意,这将创建一个字符串,因此,在编译脚本时它不会被删除。