所谓函数,在编程语言里就是一段可以被重复利用的代码,通过给函数提供相应的参数,他就能按照编程的要求,以相同的代码得出不同的结果。函数的实现增强了代码的重利用率,在面向对象编程如JA...

    所谓函数,在编程语言里就是一段可以被重复利用的代码,通过给函数提供相应的参数,他就能按照编程的要求,以相同的代码得出不同的结果。函数的实现增强了代码的重利用率,在面向对象编程如JAVA中,函数也被叫做方法(method)。

    同样的,将Module目录中的"供应模块规则.zl"改个名字做个备份,同时新建一个"供应模块规则.zl",并在其中输入如下代码:

use builtin; //printf属于内建模块函数,所以需要通过use来加载。
def NORMAL 0; //NORMAL宏,用于printf函数的参数,表示使用默认的黑色打印出信息
def RED 1; //RED宏,用于printf函数的参数,表示使用红色打印出信息,多为警告信息
def GREEN 2; //GREEN宏,用于printf函数的参数,表示使用绿色打印出信息,多为成功提示信息

fun retMax(a,b)
    print 'a is ' + a +' b is ' + b;
    if(a > b)
        printf('a 大于 b \n' ,GREEN);
    elif(a < b)
        printf('a 小于 b \n' ,GREEN);
    else
        printf('a 等于 b \n' ,GREEN);
    endif
endfun

retMax(5,3);
retMax(5,'8'); //字符串,整数,浮点数相互之间都可以进行比较
retMax(5,3.14159);
retMax(8,8);

    点击开始后执行结果如下:

    在上面的代码中printf是一个builtin内建模块中的函数,需要通过use builtin;来加载,该函数有两个参数,第一个是要进行显示的字符串信息,第二个参数用来指示该用什么颜色将信息输出到日志面板中,和print指令的不同之处在于print指令在输出显示信息后,会自动在末尾加换行符,并且只能用黑色来显示,print属于系统指令,并非函数,必须使用print加空格加字符串的格式。相比之下,printf函数不会自动在末尾加上换行符,如果要使用换行符,可以手动加入'\n'回车的转义字符(上面的例子中就有),而且可以输出黑,红,绿三种颜色。

    fun结构的语法,以上面代码为例,fun retMax(a,b) ....... endfun ,其中fun关键字声明并定义一个函数,retMax是函数名,括号中的abretMax函数的两个参数,fun函数必须以endfun结束。

    调用方法很简单,直接用函数名加参数即可,如上例中的retMax(5,3);等,通过上面的例子可以看出,如果没有函数,那么if...elif...else...endif就需要在代码中写四次,因为上面有四个比较操作,每个比较都需要使用if来进行比较,而函数的出现就只需写一次,后面就直接写一行调用代码即可。

    在zengl脚本中有两种类型的函数,一种是模块函数,如printf,以及上一节流程控制篇提到过的bltInfoBox函数等,这些需要通过use builtin;的方式加载内建模块后,才能使用。至于有多少函数是内建模块函数,会在后面的章节中给出。另一种就是用户通过fun关键字自定义的函数,这类函数可以定义在脚本文件的任意位置,也可以定义在后面会提到的inc加载的外部脚本文件中。

    上面还提到了一个def关键字,这个是常量宏,用法是def 宏名 宏值,宏值为整数,字符串,浮点数。zengl编译器会自动将脚本中出现宏名的地方替换为宏值,宏的作用在于,如果在代码中有很多地方用到了同一类值,那么只需修改def定义的宏值,代码中对应的值也就会跟着改变,如果没有常量宏,那么在值发生改变时,就需要修改很多地方。例如上面的例子中printf函数第二个参数,在本例中用的是GREEN,当然你可以直接使用
printf('a 大于 b \n' ,2);也可以达到效果,不过如果printf函数的内部实现发生了改变的话,例如printf第二个参数需要接受数字3才能打印绿色字符串的话,那么脚本中所有printf函数都需要将2改为3,就难以维护了,使用GREEN宏,那么在这种情况下就只需将def GREEN 2; 改为 def GREEN 3即可。

    下一节开始接触一些基本的使用脚本进行采集的方法。

    转载请注明来源 www.zengl.com ,OK ,先到这里,休息,休息一下 O(∩_∩)O~

上下篇

下一篇: 智能采集器v1.0.4

上一篇: zengl脚本语法 第二章流程控制篇

相关文章

zengl脚本语法 第六章内建函数枚举

智能采集器v1.0.5

zengl脚本语法 第五章采集入门篇(二)

智能采集器v1.0.0 使用入门

智能采集器v1.3.0开源版

zengl脚本语法 第二章流程控制篇