变量:修订间差异
添加的内容 删除的内容
小无编辑摘要 |
小无编辑摘要 |
||
第36行:
通过<code>${变量名}</code>可以引用变量。任何代码的值中都可以进行变量引用,但是必须保证该代码值的类型在引用后不会错误。<code>%{}</code>中也可以嵌套变量引用。
通过${core.price},可以引用core节的price键,诺节为section则只向自己,并不是所有的键都可以引用,如:@开头的无法引用。
<br>引用支持多个值进行替换,不过值必须满足匹配式[aA-zZ_][aA0-zZ9_.]*,且不能为运算函数。
|
2023年11月11日 (六) 20:09的版本
该模板需要改进,请勿模仿此页面创立新页面 |
变量是铁锈中一种数据存储方式,于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 |
引用
通过${变量名}
可以引用变量。任何代码的值中都可以进行变量引用,但是必须保证该代码值的类型在引用后不会错误。%{}
中也可以嵌套变量引用。
通过${core.price},可以引用core节的price键,诺节为section则只向自己,并不是所有的键都可以引用,如:@开头的无法引用。
引用支持多个值进行替换,不过值必须满足匹配式[aA-zZ_][aA0-zZ9_.]*,且不能为运算函数。
请注意${\s*(.*)\s*}是它的有效范围,不要在外圈填充空格。
变量引用例子 |
---|
[core] price:6 [action_a] pos:1 @define str1:测 @define str2:试 //${core.price}==6 //${section.pos}==1 text:${str1}${str2} #此时text的值为“测试” //${str1 str2}==“测 试” |
数学运算
${}支持使用double进行以下数学运算,不过它存在运算优先级问题,建议运算式加上()。
- +-*/^
- sprt()
- int()
- rad/弧度
- sin()
- cos()
- 例子
- ${1+(2*2)}==5
- ${sprt(4)}==2
- a=1,b=2 ${a+b}==3
请注意如果你不想进行数学运算,那么替换式不要包含“+-*/^()”其中的任何一个。