按键精灵如何使用(按键精灵脚本怎么写)

80酷酷网    80kuku.com

大家好,我是公众号3分钟学堂的郭立员,今天来说一说写脚本的一些不好习惯。

首先声明一下,这里所说的内容仅仅是不好的习惯,并不是错误,而且我说的也不一定全对,仅供大家参考。

(1)代码中有很多空行

从语法上说没有问题的,但是从编写习惯来说并不太好,因为有大量的无用空行会让代码行数增加很多,并且代码看着不连贯。

(2)代码缺少层级缩进

在代码中如果有首尾标签的命令,它内部的代码就比它低一层级。低层级的代码会向右移动一个空位。

「按键精灵」写脚本时一些不好的习惯

缩进可以很容易看到层级关系,当代码中有大量层级的时候,如果不缩进,就有可能导致层级错乱,有了明确的层级缩进关系,就容易找到同一层级的开始和结束位置。

我们在写代码的时候,不需要刻意的通过空格或者table去区分层级,只需要写好代码后按一下F4键,按键会帮我们自动分级。

(3)定义变量名过于随意

我平时写代码的时候,习惯这样定义变量

dim m

这么写没语法错误,但是从代码规范角度来说是有“问题”的,因为这行代码写完别人并不知道m这个变量是做什么的,所以我们定义变量名时最好是起一些有实际意义的名称。

dim 行号dim hanghaodim line

变量名可以是中文、英文或者是拼音,大家通过名称就可以大概猜到这个变量是做什么的。

(4)代码缺少必要的注释

关于代码注释,其实对于写脚本来说并不是必须的,你可以写也可以不写,都不影响代码的正常运行。

之所以会想到代码注释这个问题,是因为前段时间我打包卖200个源码,这些代码当中有些内容,如果我不去注释,别人可能看不懂。

其实我们写注释的目的就是为了别人能看懂代码,或者自己过了很久后台看代码能够知道代码是做什么用。

不过好在写脚本通常是单打独斗,不需要团队协作写代码,所以自己看得懂的话问题也不到。

(5)随意定义函数/子程序

这个习惯常出现在新手刚刚学会定义函数/子程序的时候,遇到什么小的功能就想封装一个函数。

之后就是调用函数,他可能觉得一大堆代码一打包成函数就是缩小了,用时就可以调用,还是给这段代码起个名字,知道代码是什么功能,看上去挺好的,一举两得。

函数的主要作用是节省代码,并不是非用不可的,即便你的代码中没有一个函数也是可以的。

那么节省代码的方式是什么呢,比方说有100行代码,在整个脚本中出现在5处位置,那么这部分代码总量就是100*5=500行代码,如果我们把100行代码封装函数,之后在5出位置调用,那么代码总数就是封装函数102行代码,5个位置分别用1行代码调用函数是5行代码,一共是107行代码。

如果你定义函数并不能起到节省代码的作用,那么没必要定义函数了。

(6)函数定义写在代码行间

这也是一个因为过于随意产生的问题,就是想要定义一个函数,就直接写了,也不管它在什么位置。

比方说下面的代码:

TracePrint "调试输出内容"call 定义函数()Function 定义函数()  TracePrint "定义函数"End FunctionTracePrint "调试输出内容"

定义的函数穿插在代码行间,这种如果遇到整体需要循环的的时候就会报错。

for 5TracePrint "调试输出内容"call 定义函数()Function 定义函数()  TracePrint "定义函数"End FunctionTracePrint "调试输出内容"next

「按键精灵」写脚本时一些不好的习惯

看上去是for循环的报错提示,其实是因为function命令是不能放到任何双标签的命令之中。

常见双标签命令:for循环、do循环、if判断、function本身,sub子程序。

(7)函数中调用全局变量

Dim a=5Call 函数()Function 函数()  TracePrint aEnd Function

这段代码就是把全局变量a,在函数中调用了,为啥不要这样使用呢,是因为,全局变量是整个代码都有效的,如果变量内容被其他命令修改了,函数在调用就可能会错误了。

正常使用的话是这样:

Call 函数()Function 函数()    Dim a=5    TracePrint aEnd Function

函数中的变量要在函数内定义,这种定义的变量叫局部变量,它只在函数内有效,函数外面是调用不了的。

(8)多个函数之间的传递数据用参数和返回值,而不是用全局变量

函数返回值:在函数内,函数名等于的值就是返回值,在函数运行完,就会返回这个值。

TracePrint 函数1()Function 函数1()    Dim a=5    Dim b=2    函数1=a*bEnd Function

函数的参数:

TracePrint 函数1(5,2)Function 函数1(a,b)    函数1=a*bEnd Function

原本a和b是定义的局部变量,把a和b写在括号里面,在调用函数的时候,把他们的值5和2填上,这个a和b就是函数的参数。

相对于dim a,b来说,参数a,b是可变的,每次调用函数可以添加不同的值,而直接dim定义就是固定的。

了解完返回值和参数以后,说一下很多新手朋友关于多个函数之间传递数据会犯的错误。

Dim aCall 函数1()Call 函数2()Function 函数1()    a=3*5End FunctionFunction 函数2()    dim b = a * 3    TracePrint bEnd Function

用全局变量在多函数之间传递数据,这种方式语法可行,但是当数据多了以后,保不齐就会出现传递失败或者传递错误数据。

那么可靠的写法是这样的:

Dim a=函数1()TracePrint 函数2(a)Function 函数1()    函数1=3*5End FunctionFunction 函数2(参数)    函数2 = 参数 * 3End Function

如果数据从函数1传递到函数2,函数1可以把要传递的数据当做返回值,函数2把函数1的返回值当做参数,这样数据就从函数1传递到函数2了。

我们写代码的中很多小细节,大家写的时候要多留意,另外多看看别人写的代码,吸取别人的优点。

好了本期内容就这些。

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: