金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚本以及网赚脚本等各个领域。想学习按键精灵的朋友可以添加金猪脚本粉丝交流群:554127455 学习路上不再孤单,金猪脚本伴你一同成长.
![f06830c97e9d1abfc356f1eaf1df4700.png](https://img-blog.csdnimg.cn/img_convert/f06830c97e9d1abfc356f1eaf1df4700.png)
其实,第一期已经跨越了。也就是说,本来第一期应该放在后面的。但是,为了直观的让新手朋友知道自己缺乏的知识,我把它作为了第一期。
第二期,我们来介绍数据类型。
实际来说,按键的数据类型不严谨。
比如我们定义一个变量直接是:
- Dim x
复制代码
这样就已经定义了 x 这个变量了。
数组变量如下:
- Dim x(2)
复制代码
这儿我们定义了数组名称是x,数组最大下标是2的一个数组变量。
其中的元素包括:x(0), x(1), x(2)这三个。所以,实际上,我们直接定义了一组一共3个变量的数组。这样定义的好处,后面做循环体的时候用得上。到时候再细说。这儿的0,1,2叫做下标。2是最大下标。
但是,如果是VB,那么定义变量,就需要定义其数据类型。比如,定义字符串类型的变量。应该是这样:
Dim x as String
上面只是说明,按键为了让新手更加快速掌握按键,所有把数据类型这个东西忽略了。在定义变量的时候,的确少了很多功夫。但是这儿也会引来了很多问题。非常多的新手朋友忽略了数据类型这个概念,经常出错。比如如下代码:
- Dim i,x(2)
- i = "a" //我们把 i = "a" 这类以 “=” 号连接的语句叫做赋值语句。通俗些就是在i代表的存储单元里面装”a”。我们这儿先暂时这么理解,后文我会高手大家,什么叫存储单元。
- TracePrint x(i)
复制代码
我们定义了两个变量,其中x是数组变量,数组最大下标为2。
然后我们给i赋值”a”,因为上面并没有定义i是什么类型的变量,所以这个赋值语句没毛病。但是,如果我们让i作为数组x的下标之后,就出现问题了。大家复制这段代码去运行,就能发现,提示 脚本 我的脚本1.Q ,第3行:类型不匹配: 'I', 类型不匹配。
如果我们把 i赋值“0”呢?
- Dim i, x(2)
- i = "a"
- x(0)=1
- TracePrint x(i)
- i = "0"
- TracePrint x(i)
复制代码
调试信息如下:
脚本 我的脚本1.Q ,第4行:类型不匹配: 'I',
脚本 我的脚本1.Q ,第6行:1
也就是说,我们的第二句调试语句 TracePrint x(i) 没什么问题。为什么呢?因为当 “0” 赋值给i之后,因为”0”是数字的字符,按键默认的把这个字符转换成了数值。实际上i=”0”在这儿等价于i=0了。
说这些,只是提醒大家数据类型的重要性。调试的时候,很容易因为i的值类型问题,无法通过调试。
一般的,按键类型有几个。
1、 数值型(Integer、Double)。2、字符型(字符串型)(String)。3、布尔型(Boolean)。4、数组(Variant()等等)。
想知道你现在的变量是什么数据类型很简单。用 typename 函数就行了。
- Dim i,x(2)
- i = "1" //赋值为字符串
- TracePrint typename(i)
- i = 1 //赋值为整数
- TracePrint typename(i)
- i = 1.2 //赋值为双精度数
- TracePrint typename(i)
- TracePrint typename(1=1) //直接调试等式,等式会直接返回布尔型值
- TracePrint typename(x) //这儿是调试数组,x是前面定义的数组x(2)
复制代码
数值型,就是数字,包括整数型(Integer)、双精度型(Double)。
字符型,字符型与字符串型。貌似都一样,因为基本没有什么函数限制这个只能字符还是字符串的。比如 “a”,“a123”等等,都是字符串型。
布尔型,布尔型的值只有两个:false(假)和true(真)。且false的序号为0,true的序号是-1。
- TracePrint 1=1 //意思是 调试输出 1=1 的值。 1=1 这是个等式,不是赋值语句,作为函数参数出现的 = 号都表达等号的意思。这儿是判断1是否等于1。
- MsgBox 1 = 1 //因为调试输出返回的值与弹出框不一样。大家调试下,其实就是上面那两种结果。调试是-1,弹出是true。代表的意思都是 真。
- TracePrint 1=2
- MsgBox 1 = 2
复制代码
数组:定义方式前面已经说过了。定义x(2),那么X(0), X(1), X(2)都可以赋值,然后调用。
比如:
- Dim x(2)
- X(0)=1
- X(1)=2
- X(2)= X(0)+ X(1)
- TracePrint X(2)
复制代码
也就是相当于直接定义3个变量。当然,这个下标可以是变量:X(i)这样。
数据类型转换:CBool 函数官方描述:返回表达式,此表达式已转换为 Boolean 子类型的Variant。
- MsgBox CBool(-1)
- MsgBox CBool(0)
- MsgBox CBool(5)
复制代码
调试下发现,第一个返回true。第二个返回false。第三个返回true。其实,就是除了0或者等式结果返回0,比如 CBool(1=0),1=0为假返回0。这时候CBool函数值为0(false)。其他情况都返回-1(true)。 CByte 函数 官方描述:返回表达式,此表达式已被转换为 Byte 子类型的 Variant。
- TracePrint CByte(-1)
- TracePrint CByte(254.5)
- TracePrint CByte(256)
![bd0ffafc3c5828c1a3b361bfaa83bce5.png](https://img-blog.csdnimg.cn/img_convert/bd0ffafc3c5828c1a3b361bfaa83bce5.png)
复制代码
大家调试下。
调试结果如下:
脚本 我的脚本1.Q ,第1行:溢出:'CBYTE',
脚本 我的脚本1.Q ,第2行:254
脚本 我的脚本1.Q ,第3行:溢出:'CBYTE',
这是因为 Cbyte 函数 强制把以上数据转换成字节型(byte型)。而byte型数据范围是0-255。-1和256都溢出(溢出就是数据超出了范围)。
还有其他各种函数,我就不一一列举了。我的命令库 — 标准VB命令 — 函数 — 类型转换函数 里面就可以看到。点击在调试栏就有说明。 如果还有不懂的,可以评论,金猪会一一回复。
![81e3bd4f0091242446a8ae0104bca5f1.png](https://img-blog.csdnimg.cn/img_convert/81e3bd4f0091242446a8ae0104bca5f1.png)