用于封装的命令主要有两个: Function 和 Sub
两个命令的功能基本上相同, 只是Function 除了包含Sub的功能外,还可以额外的附带函数返回值, 所以基本上在实际应用中更多的会选择使用Function 命令封装函数.


 

封装函数的功能就相当于把一段需要重复使用的代码, 装在一个盒子里, 在其他地方需要使用这段代码的时候, 就把这个盒子里的代码拿出来用. 这样就可以避免了一段代码重复的编写.可以缩短代码的长度. 并且适当的时候调用函数可以让代码整体看上去非常的简洁明了.

就和宠物小精灵一样~~平时放在精灵球里,需要的时候再把精灵球一丢~~~~~

命令名称 Function
命令功能 定义、封装一个函数
命令参数 函数名:任意有效标识符。
执行语句:任意有效代码语句。
自定义参数:可选参数,允许多个,任意有效标识符
返回值 可选,自定义返回值

在封装和使用函数时需要注意几点

1、函数中不能直接再次封装函数
2、使用Call调用函数的时候,不管函数是否有参数,都需要加上括号
3、可以直接使用函数名称来调用函数,直接使用名称调用函数的时候可以不加括号
4、要返回值的函数必须要在函数名后加上括号
5、函数返回值只有在函数结束退出时才会返回

简单的范例:

  1. Call 加法计算(1,5)
  2. Function 加法计算(v, v1)
  3. TracePrint v+v1
  4. End Function

复制代码

这段代码就是很简单的一个能够用来计算两个参数之和的函数。用function 把代码封装起来之后, 可以使用call + 函数名 来调用这个函数。
上面的这段范例是不带返回值的函数, 那下面就再说下函数返回值。

什么是函数返回值?

简单的说就是当调用这个函数之后,函数在结束后本身会返回一个值给你。返回的可以是一个字符串或者整数型数据甚至可以是数组。你可以使用这个返回值进行下一步操作。


带返回值的函数:

  1. TracePrint “1+5=” & 加法计算(1,5)
  2. Function 加法计算(v, v1)
  3. 加法计算 = v+v1
  4. End Function

复制代码

上面代码就是附带函数返回值的用法,函数中把参数v和参数v1两个相加的值作为函数的返回值。

赋值返回值的时候也很简单,只要把函数的名称当成是变量名来用就行了。


 

命令名称 Sub
命令功能 定义、封装一个子程序
命令参数 子程序名:任意有效标识符
执行语句:任意有效代码语句
自定义参数:可选参数,允许多个,任意有效标识符
返回值

sub的用法和Function一致。唯一的区别就是sub函数不能有返回值。只能直接被调用。

  1. Call 加法计算(1,5)
  2. Sub 加法计算(v, v1)
  3. TracePrint v+v1
  4. End Sub

复制代码


什么情况下我们需要把代码封装成函数进行调用呢?

1、需要重复调用的代码
2、独立的功能模块

把需要重复调用的代码封装起来,这样可以极大的减少了代码行数,并且在使用的时候方便。比如我们时常会遇到需要滑屏的操作,需要使用touchdown命令来进行滑屏,但是一整套命令写下来太麻烦了,如果每次滑屏都需要好几行代码来实现,那就太累了。这种情况我们就可以把这滑屏的功能封装成函数,之后只要调用函数就可以实现滑屏。

  1. Function SwipeEx(x, y, x1, y1, t)
  2. TouchDown x, y, 1
  3. TouchMove x1, y1, 1, t
  4. Delay 300
  5. TouchUp 1
  6. End Function
  7. //用1000毫秒的时间从200, 100滑动到500, 100
  8. Call SwipeEx(200, 100, 500, 100, 1000)
  9. //用2000毫秒的时间从100, 562滑动到966,582
  10. Call SwipeEx(100, 562, 966, 582, 2000)

复制代码

这样就可以大大的缩短代码长度
把独立的功能模块封装成函数进行调用,这样做的最大的好处就是可以让代码看上去简洁有序,提升代码的可读性和逻辑结构稳定性,同时也方便了之后代码的后期维护。
我们来用两端同样功能的代码对比下

  1. Tap 520, 663
  2. Delay 500
  3. InputText 账号
  4. Delay 1000
  5. Tap 200, 600
  6. InputText 密码
  7. Delay 3000
  8. Tap 500, 900
  9. Tap 486, 695
  10. Delay 3000
  11. Do
  12. Tap 500, 980
  13. Delay 1000
  14. Loop

复制代码

  1. Call 输入账号(账号, 密码)
  2. Delay 1000
  3. Call 登录()
  4. Call 执行任务()
  5. Function 输入账号(账号,密码)
  6. Tap 520, 663
  7. Delay 500
  8. InputText 账号
  9. Delay 1000
  10. Tap 200, 600
  11. InputText 密码
  12. End Function
  13. Function 登录
  14. Tap 500, 900
  15. Delay 5000
  16. End Function
  17. Function 执行任务
  18. Tap 486, 695
  19. Delay 3000
  20. Do
  21. Tap 500, 980
  22. Delay 1000
  23. Loop
  24. End Function

复制代码

大家对比下这两端代码,哪段看着更易懂?上面的代码把所有功能步骤全部写在一起,如果不加注释的话很可能过段时间自己都忘了哪部分是什么功能了(并且不加注释是新手很容易犯的小错误)。而第二段代码,把每个单独的部分封装成函数,代码主体只需要分别调用这些函数就够了,简单明确。后期也好维护,哪段有问题就改哪段,不用动其他的部分。

声明:
本站所有文章,如无特殊说明或标注,均为本站原创发布。
任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。