按键精灵安卓/IOS脚本手机版2.5基础教程
7.为什么1不是1----数据类型
我们先来做一个简单的界面,效果如图如图:- 您所在的用户组无法下载或查看附件
相信聪明的你根本不需要我贴代码就能完成。。。但是我还是要贴:- 界面1:
- {
- 文字框:
- {
- 注释:"文字大小、高度、宽度是可选属性,如需使用默认值,可保持值为0或直接删除此属性",
- 名称:"文字框1",
- 显示内容:"请输入数字",
- 文字大小:0,
- 高度:0,
- 宽度:0
- },
- 输入框:
- {
- 注释:"初始文本、文字大小、最大输入长度、高度、宽度是可选属性,如需使用默认值,可保持值为0或直接删除此属性",
- 名称:"输入框1",
- 提示内容:"输入一个数字",
- 仅输入数字:false,
- 文字大小:0,
- 最大输入长度:0,
- 高度:0,
- 宽度:0
- },
- }
复制代码 我们很容易的根据提示得知这是要输入一个数字,于是我们听话的输入了一个1。再来看看我们的脚本是怎么去识别的:- Dim 用户输入 = ReadUIConfig("输入框1")
- If 用户输入 = 1 Then
- TracePrint 用户输入
- End If
复制代码 就一个判断语句,感觉没有问题,于是我们欢快的运行起来,然后。。。并没有什么然后,居然什么都不显示,难道1不是1吗?程序没有报错,那么我们就只能逐句来判断,先看看第一句获取UI界面的信息,我们在它的下面加上一句“TracePrint 用户输入”,然后调试运行后发现并没有问题,输出的也是1呢。这是BUG吧。。。。当然不可能啦,这里我们需要谈谈数据类型,不同数据有不同类型,常见的有:1. 整型 也可以叫整数,和数学上的整数一样一样的。2. 浮点型 可以理解为数学上的分数,分为单精度和双精度,区别在于能够精确到小数点后几位,我们并不需要知道的那么确切,因为足够我们用了。3. 布尔型 只有真假两种情况,true表示真,false表示假,经过判断语句返回的结果就是一个布尔型,真或者假。4. 字符串 连续的字符序列,放在英文的双引号(" ")内,比如一个名字("叶良辰"),一串ID("89757")都是属于字符串。5. 数组 一堆按顺序排列的数据可以组成数组,属于基础数据结构组合而成的构造数据类型,比如Array("你好",1,true),数组内的数据可以为整型布尔型字符串类型。我们可以使用数组名加位数来获取数组内的数据,比如数组(0)为"你好"(数组的位置从0开始)。
了解了这些之后,我们再回头看看之前的为什么1不是1的问题,我们的UI界面用的是输入框,这个输入框可以输入任何数据,脚本获得的数据默认是字符串类型,整型的1和字符串类型的"1"在没有特殊的转换的情况下当然是不一样的。
细心的同学发现了我们的UI界面中,输入框的属性中有一条:仅输入数字,默认是false,也就是假,如果我们改成true是不是就行了呢?不要问!直接实验,实践是检验真理的唯一标准,我们尝试了之后发现还是一样,区别在于,输入框只能输入数字,但是获取到的依旧是字符串类型,那么这个方法失败,下一个!
思考一下,我们获取的是字符串,那么我们把比较的那一个数也改成字符串不就好了。一番尝试之后,发现确实没有问题。但是这样有几个问题,一是这违背了我们的初衷,我们想做的是两个数字的比较,变成了字符串之间的;二是这种方法适用度窄小,比如我们需要的不是相等,而是其他判断呢?因此此方法并不好,下一个! 既然我们需要的是一个数字,那么我们可以从一开始就将获取的字符串转换成数字,既符合我们的需求,适用度也高。类型的转换使用。。。恩,翻开我们的命令大全,找到类型转换(你是自己忘了吧。。。咳咳)- 您所在的用户组无法下载或查看附件
这里列出了几种类型转换,我们需要的是将字符串类型转换成整型,那么开始写:- Dim 用户输入 = ReadUIConfig("输入框1")
- If CInt(用户输入) = 1 Then
- TracePrint 用户输入
- End If
复制代码 这回终于得到令我们满意的结果了。