• 新浪微博:
  • 微信 :
按键精灵电脑版
立即下载

软件版本:2014.05
软件大小:21.6M
更新时间:07-04

按键精灵安卓版
立即下载

软件版本:3.3.0
软件大小:62.5M
更新时间:5-24

按键精灵iOS版
立即下载

软件版本:1.3.3
软件大小:29.2M
更新时间:06-14

按键精灵Mac版
立即下载

软件版本:1.1.0
软件大小:12.3M
更新时间:12-29

快捷导航

登录 后使用快捷导航
没有帐号? 注册

登录 注册
发新话题 回复该主题

[按键精灵手机版2.5基础教程] 7.为什么1不是1----数据类型 [复制链接]

1#

按键精灵手机版2.5基础教程


7.为什么1不是1----数据类型


我们先来做一个简单的界面,效果如图如图:



相信聪明的你根本不需要我贴代码就能完成。。。但是我还是要贴:
  1. 界面1:
  2. {
  3. 文字框:
  4. {
  5. 注释:"文字大小、高度、宽度是可选属性,如需使用默认值,可保持值为0或直接删除此属性",
  6. 名称:"文字框1",
  7. 显示内容:"请输入数字",
  8. 文字大小:0,
  9. 高度:0,
  10. 宽度:0
  11. },
  12. 输入框:
  13. {
  14. 注释:"初始文本、文字大小、最大输入长度、高度、宽度是可选属性,如需使用默认值,可保持值为0或直接删除此属性",
  15. 名称:"输入框1",
  16. 提示内容:"输入一个数字",
  17. 仅输入数字:false,
  18. 文字大小:0,
  19. 最大输入长度:0,
  20. 高度:0,
  21. 宽度:0
  22. },
  23. }
复制代码
我们很容易的根据提示得知这是要输入一个数字,于是我们听话的输入了一个1。再来看看我们的脚本是怎么去识别的:
  1. Dim 用户输入 = ReadUIConfig("输入框1")
  2. If 用户输入 = 1 Then
  3. TracePrint 用户输入
  4. 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是不是就行了呢?不要问!直接实验,实践是检验真理的唯一标准,我们尝试了之后发现还是一样,区别在于,输入框只能输入数字,但是获取到的依旧是字符串类型,那么这个方法失败,下一个!

思考一下,我们获取的是字符串,那么我们把比较的那一个数也改成字符串不就好了。一番尝试之后,发现确实没有问题。但是这样有几个问题,一是这违背了我们的初衷,我们想做的是两个数字的比较,变成了字符串之间的;二是这种方法适用度窄小,比如我们需要的不是相等,而是其他判断呢?因此此方法并不好,下一个!
既然我们需要的是一个数字,那么我们可以从一开始就将获取的字符串转换成数字,既符合我们的需求,适用度也高。类型的转换使用。。。恩,翻开我们的命令大全,找到类型转换(你是自己忘了吧。。。咳咳)



这里列出了几种类型转换,我们需要的是将字符串类型转换成整型,那么开始写:
  1. Dim 用户输入 = ReadUIConfig("输入框1")
  2. If CInt(用户输入) = 1 Then
  3. TracePrint 用户输入
  4. End If
复制代码
这回终于得到令我们满意的结果了。

点评

hungchih919  恩! 越來越深入了, 努力吸收中~~謝謝  发表于 2017/4/19 12:03:48

最后编辑兄弟工程师13 最后编辑于 2015-10-08 15:10:48
本主题由 按键工程师 兄弟工程师13 于 2015/10/8 15:11:31 执行 移动主题 操作
2#


3#

我先休息一下

4#


5#

好久没来学习了~~~我胡汉三又来上课了

6#


7#


8#

赞一个。。不过我发现评论区的同学好像少了一些了,是放弃了吗?

9#

作者大大加油↖(^ω^)↗

10#

连一页都没有 不能放弃啊

11#

继续,看完一课回复一下。。。好习惯,哈哈。

12#

没有吐槽叶良辰的吗??

13#

学习要动手,动手

能想到,但不一定能做到。
动动手,更容易发现问题。
14#

写的真好!膜拜

15#

感觉智商不够用

16#

努力学习中

17#

回复 1楼兄弟工程师13的帖子

新手 努力學阿~~ 謝謝

18#

好好学习 天天向上 想找几个一起学的有吗

19#

不错不错!!

20#

努力学习中

发新话题 回复该主题