变量
定义
在运行时环境的可变状态、具有存储空间的抽象。通常以一个键值对来描述变量,即<变量的名字,变量的值>。
变量的类型
Yuriri脚本中的变量是无类型、无需声明的。但在运行时环境中,变量将根据Yuriri脚本中被作为左值时的情况,来确定该变量在上下文中的类型。反过来,一个变量在被作为左值之前就被引用,将导致引擎抛出错误并强制结束游戏。
变量在运行时上下文中的类型只有两种:
- 串 一个由半角英文双引号所包裹的,不定个Unicode字符所组成的字符串,如:
"Welcome to Yuri World!"
- 数值 一个实数,其范围为 $±5.0 × 10^{−324}$ 到 $±1.7 × 10^{308}$,如:
3.1415926
23333
在后续版本中,Yuri Engine计划引入集合变量。
变量的作用域
运行时环境通过变量名前缀的变量作用域字符来确定一个变量的行为性质。Yuri引擎一共有三种变量作用域:
类型 | 前缀符 | 样例 | 可修改性 | 可保存性 | 可回滚性 | 可访问性 |
---|---|---|---|---|---|---|
局部变量 | $ | $localVar | √ | 场景中可保存,函数中不可保存 | √ | 当前场景或函数 |
全局变量 | & | &globalVar | √ | √ | √ | 全局 |
持久变量 | % | %persistVar | √ | 系统自动保存,与存档无关 | × | 全局 |
变量的命名规约
变量名(不含作用域符号)必须满足以下所有约束条件:
- 只包含字母、下划线“_”,数字
- 第一个字符不可以是数字
即变量名必须满足正则表达式:
^[a-zA-Z][a-zA-Z0-9]*$
程序集信息
Property | Value |
---|---|
层次结构 | Yuri.PlatformCore.VM.IRuntimeContext |
最低版本 | 1.0 |
并行安全 | - |