百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

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

cac55 2025-01-16 18:12 10 浏览 0 评论

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


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


(1)代码中有很多空行


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


(2)代码缺少层级缩进


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



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


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


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


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


dim m


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


dim 行号
dim hanghao
dim line


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


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


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


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


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


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



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


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


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


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


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


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


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


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


比方说下面的代码:


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


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


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




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


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


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


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


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


正常使用的话是这样:


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


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


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


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


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


函数的参数:


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


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


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


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


Dim a
Call 函数1()
Call 函数2()
Function 函数1()
    a=3*5
End Function


Function 函数2()
    dim b = a * 3
    TracePrint b
End Function


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


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


Dim a=函数1()
TracePrint 函数2(a)


Function 函数1()
    函数1=3*5
End Function


Function 函数2(参数)
    函数2 = 参数 * 3
End Function


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


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


好了本期内容就这些。

相关推荐

QQ表情大图(QQ表情大图怎么发)

爷青回 | QQ经典老头像(爷青回这个梗出自哪里)

点个关注不迷路记得点击上方关注我呦点击表情包长按可保存至手机表情包素材来源于网络,仅供分享哦拿完图记得吱一声点击下方分享、在看让更多人看到...

史上最全QQ官方经典头像全面翻新,不光高清还会动

每当看到上面这些头像,总能想起那些年的"轻舞飞扬","缘分天空","追风少年",这些已经模糊的头像给我们留下了太深的印象。这次为了纪念QQ20周年,腾讯官方整合了早期的105个经典头像,进行了全面翻...

QQ最全表情含义图解意思(qq表情含义图解最新 新版 文字)

QQ都不陌生吧!对QQ的表情符号含义你了解多少呢?在本文中最全图解233个表情所表达的含义,供有需人享用。用过QQ的人都晓得它的创始人是马化腾。QQ于1999年2月10日正式推出。QQ是腾讯公司开发的...

海联真人版QQ经典表情(海联真人版qq经典表情在哪)

海联版傲娇的说声“耶”狂拽炫酷就是我淑女应该轻言细语萌萌哒的娇羞哎哟喂小丫头片子机智如我吓死宝宝了欧巴卡几嘛~今天天气好晴朗怎么样?是不是很有趣呢拿起手机给自己拍几张萌萌哒的美照吧...

QQ音乐·音乐灵感独家对话金曲奖「最佳单曲制作人奖」得主JADE

JADE-AllRightJADE-差-点JADE-Goodbye,GoodbyeJADE-IAmLovefeat.乔瑟夫Chillseph下面请听本期灵感电台节目:本期博客...

亿万富豪爱泼斯坦狱中“自杀”,他背后的神秘女人出现在洛杉矶快餐店

爱泼斯坦在狱中离奇“自杀”,但他身负同谋指控的前女友、英国社交名媛希莱恩·麦克斯维尔(GhislaineMaxwell),却意外地出现在了洛杉矶街头平民快餐店,边啃着汉堡,咽着薯条,嘬着奶昔,边埋头...

扛起星战大旗的你们 觉得星战女需要换一身衣裳吗?

马上进入2016年,除了各种总结盘点以外,2016年的新看点也是需要科普一下了。目前最令人期待的应该就是《星球大战》回归了!《StarWars:原力觉醒》1月10日上映,博主不是电影评论员,所以不会...

和人对话的时候,我,最怕的就是,看到了自己内心的惶恐和脆弱

IWannaBeYourSlave(LiveFromGlobalCitizenLive2021),Maneskin很多时候,哪怕最甘于寂寞的人,也需要和人发生关联,需要和这个世界沟...

2024年度串烧完整版(搞笑失败尴尬丢人版)来了

一首APT的时间带你回顾你的2024年年度歌单。·1.《免我蹉跎苦》黄龄。·2.《红昭愿》音阙诗听。·3.《苹果香》狼戈。·4.《免我蹉跎苦》黄龄。·5.《红昭愿》音阙诗听。·6.《苹果香》狼戈。·7...

一课译词:打工人(打工人的翻译)

下午好,各位打工人!近日,“打工人”爆红网络,受到各行各业年轻人的追捧,但这词到底说的是个啥?“打工人”是那些依靠体力或技术的劳动者的统称。除了赚钱这个最大的目标,别的啥也不想;他们意志坚定,也不会迟...

初级词汇题(一)柏拉图指出不是每个孩子都适合上学,你赞成吗?

初级词汇题(一)柏拉图在《理想国》中指出不是每个孩子都适合上学,你赞成吗?今天分享的题目是我基于英文原著改编的初级词汇题A开头的第81道题。背景知识拓展:什么是nativist(先天论者)?什么是哲学...

治愈系英文:每个说不想恋爱的人,心里都装着一个无法拥有的人

Therearesomanypeopleouttherewhowilltellyouthatyoucan't.Whatyou'vegottodoisturna...

首首经典!意大利流行乐队Maneskin作品I WANNA BE YOUR SLAVE

手机点击试听(上边)Maneskin是一支来自罗马的意大利流行摇滚乐队,由主唱DamianoDavid、贝斯手VictoriaDeAngelis、吉他手ThomasRaggi和鼓手...

国家电网新一代电子商务平台投标文件双层PDF制作最全教程

投标知识在招投标过程中,我们经常碰见有些文件要求制成双层PDF格式,那么双层PDF是什么呢?怎么制作呢?今天就给大家普及下。定义双层PDF双层PDF格式文件是一种具有多层结构的PDF格式文件,是PD...

取消回复欢迎 发表评论: