VxMatScript已支持局部变量-变量的作用域!
fun test={
var i=1
var m=0
loop {
m=m+i
if i>=n
iftrue
break
i=i+1
}
sh 在test里循环完成后I的值:[i]
sh 在test里循环完成后m的值:[m]
return m
}
i=555
m=123
n=100
sh 1-100之和:[test]
sh test函数调用完成后I:[i]
sh test函数调用完成后M:[m]启动脚本任务:[31]
[31]在test里循环完成后I的值:100
[31]在test里循环完成后m的值:5050
[31]1-100之和:5050
[31]test函数调用完成后I:555
[31]test函数调用完成后M:123
[31]===脚本结束===
(1)在代码块里使用var命令定义的变量,该变量的有效范围为本代码块及本代码块中包含的子代码块;
(2)未使用var定义的变量,将往上寻找该变量的定义位置,如找不到,则在本代码块中等同于var定义;
(3)使用str和text定义并赋值的变量,均为本代码块中的局部变量,不会改写其上层代码块中的值;可能后续会在str和text定义中加入特殊的标识,用以识别该赋值的变量是否已在上层代码块中存在,如不存在才会在本地中建立,如存在则会在该代码块中赋值,类似于不使用var的表达式变量赋值;
(4)fun自定义函数的定义,永远都是最外层的
所以,会有可能出现,在funname1中重新定义funname1的代码体,然后在后续的访问该函数的过程中,访问到的都是最后定义的代码体,包括在函数体自身内。
转载请注明 : 文章转载自不了阁-飞哥 blog.forbs.cn
本站文章除注明转载/出处外,均为本站原创或翻译。若要转载请务必注明出处,尊重他人劳动成果共创和谐网络环境。


