变量:修订间差异
(→数学运算:错别字) 标签:移动版编辑 移动版网页编辑 |
(→引用) 标签:移动版编辑 移动版网页编辑 |
||
(未显示同一用户的4个中间版本) | |||
第10行: | 第10行: | ||
== 定义 == |
== 定义 == |
||
在非注释节,使用<code>@global 名称:值</code>可以定义'''全局变量''',不过请注意它在复制时会 |
在非注释节,使用<code>@global 名称:值</code>可以定义'''全局变量''',不过请注意它在复制时会由重排序导致值错误,诺要避免请按照规范将它放在core节上。<br><code>@define 名称:值</code>定义'''局部变量'''。 |
||
{{折叠|变量定义例子|<pre> |
{{折叠|变量定义例子|<pre> |
||
[core] |
[core] |
||
第16行: | 第16行: | ||
@global b:qwerty |
@global b:qwerty |
||
[action_x] |
[action_x] |
||
@ |
@define c:10.0 |
||
</pre>}} |
</pre>}} |
||
第36行: | 第36行: | ||
通过<code>${变量名}</code>可以引用变量。任何代码的值中都可以进行变量引用,但是必须保证该代码值的类型在引用后不会错误。<code>%{}</code>中也可以嵌套变量引用。 |
通过<code>${变量名}</code>可以引用变量。任何代码的值中都可以进行变量引用,但是必须保证该代码值的类型在引用后不会错误。<code>%{}</code>中也可以嵌套变量引用。 |
||
通过${core.price},可以引用core节的price键,若节为section则 |
通过${core.price},可以引用core节的price键,若节为section则指向自己,这包含复制的节,但是有些复制实现在序列化完成后,这是不可引用的。 |
||
<br>引用支持多个值进行替换,不过值必须满足匹配式[ |
<br>引用支持多个值进行替换,不过值必须满足匹配式[a-zA-Z_][0-9a-zA-Z_.]*,且不能为运算函数。 |
||
<br>请注意${\s*(.*)\s*}是它的有效范围,不要在外圈填充空格。{{折叠|变量引用例子|<pre> |
<br>请注意${\s*(.*)\s*}是它的有效范围,不要在外圈填充空格。{{折叠|变量引用例子|<pre> |
||
第55行: | 第55行: | ||
==数学运算== |
==数学运算== |
||
${}支持使用double进行以下数学运算,不过它存在运算优先级问题,建议运算式加上() |
${}支持使用double进行以下数学运算,不过它存在运算优先级问题,建议运算式加上(),运算函数不一定需要() |
||
#+-*/^ |
#+-*/^() |
||
#sqrt |
#sqrt |
||
#int |
#int |
||
*rad/弧度 |
*rad/弧度 |
||
#sin |
#sin |
||
#cos |
#cos |
||
*例子 |
*例子 |
||
#${1+(2*2)}==5 |
#${1+(2*2)}==5 |
||
#${sqrt(4)}==2 |
#${sqrt(4)}==2 |
||
#${int 1}==1 |
|||
#a=1,b=2 ${a+b}==3 |
#a=1,b=2 ${a+b}==3 |
||
请注意如果你不想进行数学运算,那么替换式不要包含“+-*/^()”其中的任何一个。 |
请注意如果你不想进行数学运算,那么替换式不要包含“+-*/^()”其中的任何一个。 |
2024年5月10日 (五) 10:54的最新版本
该模板需要改进,请勿模仿此页面创立新页面 |
变量是铁锈中一种数据存储方式,于1.14被加入。
不同于内存,变量的值是固定的,在ini中定义后无法修改。
定义
在非注释节,使用@global 名称:值
可以定义全局变量,不过请注意它在复制时会由重排序导致值错误,诺要避免请按照规范将它放在core节上。@define 名称:值
定义局部变量。
变量定义例子 |
---|
[core] @global a:100 @global b:qwerty [action_x] @define 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则指向自己,这包含复制的节,但是有些复制实现在序列化完成后,这是不可引用的。
引用支持多个值进行替换,不过值必须满足匹配式[a-zA-Z_][0-9a-zA-Z_.]*,且不能为运算函数。
请注意${\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进行以下数学运算,不过它存在运算优先级问题,建议运算式加上(),运算函数不一定需要()
- +-*/^()
- sqrt
- int
- rad/弧度
- sin
- cos
- 例子
- ${1+(2*2)}==5
- ${sqrt(4)}==2
- ${int 1}==1
- a=1,b=2 ${a+b}==3
请注意如果你不想进行数学运算,那么替换式不要包含“+-*/^()”其中的任何一个。