VxMatScript已支持局部变量-变量的作用域!

郑鹏飞3年前VxMatScript1007
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
本站文章除注明转载/出处外,均为本站原创或翻译。若要转载请务必注明出处,尊重他人劳动成果共创和谐网络环境。

相关文章

VxMatScript的语法实际上很简单

VxMatScript的语法实际上很简单

1、变量定义和赋值        var i=1      ...

VxMatScript语言帮助

VxMatScript语言帮助

VxMatScript脚本语言是本人独立开发的一个基于文本内容的实时解析的脚本语言。3个月前,我本人还是一个零基础的C/C++的代码爱好者。如果您想吐槽这个语言有多难用,请您先了解以下信息: ...

VxMatScript内置变量-VxTerm专用

VxMatScript内置变量-VxTerm专用

VxTerm中可以使用触发器和VxMatScript脚本互相配合,完成自动化运维任务。触发器可以参考 https://blog.forbs.cn/category-49.html为配合VxT...

VxMatScript 求从1到100相加的和

VxMatScript 求从1到100相加的和

//以下利用两种方式定义两种类型的自定义函数,然后利用这两个自定义函数分别求从1-N之和 //定义一个Text变量 text f1str={    &nb...

为什么写VxMatScript?

为什么写VxMatScript?

写VxMatScript的原因,来自于我要为VxTerm写一个触发器。什么是触发器?如果您玩过MUD,就会知道一个叫做触发器的名词。它是根据会话终端接收到的数据信息,自定义一些类似于正则表达式的匹配项...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。