跳到主要内容

IVRScript脚本语言简介

IVRScript是一种用于创建内容的高级、动态类型的编程语言。它使用类似于Python的语法(块基于缩进,许多关键字相似)。

IVRScript是一种动态类型语言。因此,它的主要优点是:

  • 这种语言简单易学。
  • 大多数代码都可以快速地编写和更改, 而且没有任何麻烦。
  • 编写更少的代码意味着要修复的错误和失误更少。
  • 更容易阅读代码(减少混乱)。
  • 测试不需要编译。
  • 运行时(Runtime)很小。
  • 本质上是鸭子类型和多态性。

标识符

标识符指的是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名。任何仅限于字母字符(azAZ),数字(09)和_的字符串都可以作为标识符。此外,标识符不能以数字开头。标识符区分大小写。

关键字

以下是该语言支持的关键字列表。由于关键字是保留字(记号),它们不能用作标识符。操作符(如 in、not、and、or)以及内置类型的名称也是保留的。

关键字描述
if参见 if/else/elif
elif参见 if/else/elif
else参见 if/else/elif
for参见 for
while参见 while
match参见 match
break退出当前forwhile循环的执行
continue立即跳到forwhile循环的下一个迭代
pass在语法上要求语句在不希望执行代码的地方使用, 例如在空函数中
return从函数返回一个值
class定义一个内部类
class_name为脚本定义类名称和可算图标
extends定义用当前类扩展什么类
is测试变量是否扩展给定的类, 或者是否是给定的内置类型
as如果可能, 将值转换为给定类型
self引用当前的类实例
tool在编辑器中执行脚本
signal定义信号
func定义函数
static定义静态函数。不允许静态成员变量
const定义常量
enum定义枚举
var定义变量
onready一旦脚本附加到的节点及其子级成为场景树的一部分, 就初始化变量。参见 onready
export保存一个变量及其附加资源,并使其在编辑器中可见和可修改。参见 export
setget为变量定义setter和getter函数。参见 setget
breakpoint调试器断点的编辑器助手
preload预加载一个类或变量。参见preload
yield协程支持。参见yield
assert断言条件,如果失败则记录错误。在非调试版本中被忽略。
remote网络RPC注解
master网络RPC注解
puppet网络RPC注解
remotesync网络RPC注解
mastersync网络RPC注解
puppetsync网络RPC注解
PI圆周率常量
TAUTAU常量
INF无穷大常数,用于比较
NANNAN(不是一个数字)常数。用于比较

运算符

下面是支持的运算符列表及其优先级(越上面越高)。

OperatorDescription
x[index]数组索引(最高优先级)
x.attribute属性引用
foo()函数调用
is实例类型检查
~按位取反
-x负/一元否定
* / %乘法/除法/余数,这些运算符的行为与C++相同。
整数除法会被截断,而不是返回小数。
%运算符适用于ints("fmod "适用于floats),
并另外用于格式化字符串Format Strings
+加法/数组的串联
-减法
<< >>位移位
&按位与
^按位异或
|按位或
< > == != >= <=比较
in内容测试
! not布尔非
and &&布尔与
or ||布尔或
if x else三元if/else
as类型转换
= += -= *= /= %= &= |= <<= >>=赋值(最低优先级)

注释

任何从#开始到行尾的内容都会被忽略,并被是为注释。

# 这是一个注释