找回密码
 加入
搜索
查看: 4370|回复: 14

[效率算法] 不测试,谁能知道这个运行结果?

 火.. [复制链接]
发表于 2011-5-11 00:24:39 | 显示全部楼层 |阅读模式
$a='500'
$b='1000'
ConsoleWrite($a<$b)

谁知道结果是true还是false?
 楼主| 发表于 2011-5-11 00:32:43 | 显示全部楼层
他NND, 用了这么长时间的AU3,今天才发现我有一个想法始终是错误的。
哎, 要都改过来可就麻烦死了。
发表于 2011-5-11 00:39:12 | 显示全部楼层
谁知道结果是true还是false?
foboy 发表于 2011-5-11 00:24



    这还用试嘛,当然是False了,因为这时比较的是字符串,而不是数字,当然5<1是False了
学过别的语言 --- 象C,必须明确申明类型,就非常明了,不会有什么问题。

象au3这样的,为了减少使用它的难度,它“聪明”地自动判断是什么类型,而不需要写的人去明确。就会存在糊涂的情况
发表于 2011-5-11 01:31:23 | 显示全部楼层
false,同为字符串对比,应该以asc码对比吧,我是这样想
 楼主| 发表于 2011-5-11 01:36:10 | 显示全部楼层
本帖最后由 foboy 于 2011-5-11 01:37 编辑

在我的印象里,既然AU3是自动判断数据类型,涉及到数学运算应该把纯数字的字符串当数字处理啊。
谁知道我错了这么久
发表于 2011-5-11 01:59:44 | 显示全部楼层
$a='500' == string(500)
$b='1000' == string(1000)
发表于 2011-5-11 05:48:15 | 显示全部楼层
本帖最后由 happytc 于 2011-5-11 05:49 编辑
在我的印象里,既然AU3是自动判断数据类型,涉及到数学运算应该把纯数字的字符串当数字处理啊。
谁知道我错 ...
foboy 发表于 2011-5-11 01:36


因为你赋值时加了引号呀
你改正
$a=500
$b=1000
ConsoleWrite($a<$b)
试试
发表于 2011-5-11 09:53:01 | 显示全部楼层
回复 7# happytc
那如果是这样的情况呢?还是当成字符串来处理吗?
$a=500
$b='500'
ConsoleWrite($a<$b)
发表于 2011-5-11 09:56:43 | 显示全部楼层
刚才我也遇到这个问题 stringreplace
要用这个 string() 转换才能替换数字 ...
php 里面是自动的。。。
发表于 2011-5-11 10:25:18 | 显示全部楼层
回复  happytc
那如果是这样的情况呢?还是当成字符串来处理吗?
3mile 发表于 2011-5-11 09:53


我没有测试前根据的别的语言同样情形猜了下,au3也跟别的语言一样会‘强制转换’后来比较。

就好象C里若把Float类型跟Double类型比较时会自动把Float转成Double后再比较一样
发表于 2011-5-11 10:30:55 | 显示全部楼层
回复 10# happytc
对了,就是这样.
C也一样会"聪明"地自动判断数据类型吧?
发表于 2011-5-11 10:40:12 | 显示全部楼层
回复 5# foboy


    哈哈,老大也有出错的时候。。。你的数字已经加引号了,所以就是字符串了。我之前还碰见过一个情况,就是用正则提取出来的数字有时候也是字符串类型的
http://www.autoitx.com/thread-23585-1-1.html
发表于 2011-5-11 11:38:24 | 显示全部楼层
foboy 内存地址 哈哈 我是你的客户
 楼主| 发表于 2011-5-12 13:49:58 | 显示全部楼层
原来是你啊, 以后多交流。我在做游戏数据的通用调用接口。借助AutoItObject UDF做的。如果你以后也经常做这块,可以互相共享一下资源,节省劳动力。
发表于 2011-5-13 05:32:04 | 显示全部楼层
楼主,这是什么意思啊?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-1 23:19 , Processed in 0.086531 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表