变量

来自RustedWarfare Wiki
冰点启航留言 | 贡献2023年1月1日 (日) 22:30的版本 (类似@define这样定义的东西更类似于宏替换,实际上是不可变的(但是可以被覆盖)。本页面暂时不要编辑,有问题移步至讨论页面。)

变量是铁锈中一种数据存储方式,于1.14被加入。

不同于内存,变量的值是固定的,在ini中定义后无法修改。

定义

在[core]中,使用@global 名称:值可以定义全局变量。而在任何节(注释节除外),都可以使用@define 名称:值定义局部变量

变量定义例子
[core]
@global a:100
@global b:qwerty
[action_x]
@global c:10.0

类型

铁锈中,变量包含全局变量局部变量两种,其作用域不同。全局变量在整个ini中都能进行引用,而局部变量只能在定义该变量的节引用。同一个单位中不同的节可以定义名称相同的局部变量,而互不影响。当全局变量和局部变量重名时,局部变量优先级更高,能够在该局部变量所处的节覆盖全局变量。变量本身并不存在“数据结构类型”,本质上变量只是一个替换工具,在加载时引用的变量被替换为定义的值。

局部变量和全局变量例子
[core]
@global a:10
@global b:20
[action_a]
@define a:15
#此时 ${a} 为 15
[action_b]
#此时 ${a} 为 10
#此时 ${b} 为20

引用

通过${变量名}可以引用变量。任何代码的值中都可以进行变量引用,但是必须保证该代码值的类型在引用后不会错误。%{}中也可以嵌套变量引用。

变量引用例子
[action]
@define time:0
@define str1:测
@define str2:试

text: -${str1}${str2}
#此时text的值为 -测试
buildSpeed:${time}