找回密码
 加入
搜索
查看: 6087|回复: 17

[效率算法] 等号的神奇功能

 火.. [复制链接]
发表于 2015-12-3 15:17:31 | 显示全部楼层 |阅读模式
本帖最后由 duanqs 于 2015-12-3 15:33 编辑

该贴算是一个交流贴, 记录一下俺的体会.
等号"="恐怕是最常用的符号了, 可是它却被au3赋予了很奇特的功能. 先看下述代码

  

$var='01'
MsgBox(0,0,$var=01); 实际返回True
MsgBox(0,0,$var==01) ;实际返回False


小结: 等号的三个不同功能:
1. 赋值功能
2. 数值比较功能
3. 字符串比较功能.
一不留神会犯混淆使用的. 切记.
通常情况下, 做判断时, 建议还是多用数值比较要好一些, 就是说多用"=', 少用"==".
今天在使用一个变量当作月份, 进行判断时就犯了这种低级错误.
 楼主| 发表于 2015-12-3 15:26:26 | 显示全部楼层
另外,
对于用作数值比较符的"=",  
au3会自动地把要比较的变量先进行数值转换(相当于做Number()处理), 然后进行比较.
对于用作字符串比较符的"==",  
au3会自动地把要比较的变量先进行字符串转换(相当于做String()处理), 然后进行比较.

俺这样理解, 应该没错吧.
愿听您的高见.
 楼主| 发表于 2015-12-3 15:36:06 | 显示全部楼层
代码片的字号想调整大一些, 可是为什么不行呢.

[size5]  ....

不是这样操作吗?
劳驾懂的朋友, 请指点一二.
发表于 2015-12-3 21:30:18 | 显示全部楼层
数字加了引号后就不是数值而是字符, 一个等号字符或数值相等即匹配, 两个等号字符或数值必须完全相等才可匹配.

评分

参与人数 1金钱 +20 收起 理由
ura + 20

查看全部评分

发表于 2015-12-3 21:39:34 | 显示全部楼层
$var='01';这里被赋值为字符.
MsgBox(0,0,$var=01); 实际返回True
MsgBox(0,0,$var==01) ;实际返回False
$var=01;这里被赋值为数值.
MsgBox(0,0,$var=01); 实际返回True
MsgBox(0,0,$var==01) ;实际返回True
ubb代码 要有起始[size1] 要有结束 [/size1]
 楼主| 发表于 2015-12-3 22:01:19 | 显示全部楼层
"两个等号字符或数值必须完全相等才可匹配."
Xayle兄, 顶你的这句总结. 谢谢.
 楼主| 发表于 2015-12-3 22:06:22 | 显示全部楼层
数字加了引号后就不是数值而是字符, 一个等号字符或数值相等即匹配, 两个等号字符或数值必须完全相等才可匹 ...
xayle 发表于 2015-12-3 21:30


受教! 多谢.
发表于 2015-12-3 23:19:37 | 显示全部楼层
长知识了,不注意真容易犯这种错误!谢谢分享知识!
发表于 2015-12-4 11:13:41 | 显示全部楼层
涨姿势 谢谢
发表于 2015-12-4 15:36:37 | 显示全部楼层
数字 = 字符==
发表于 2015-12-4 18:20:55 | 显示全部楼层
涨姿势 谢谢
发表于 2015-12-5 21:03:21 | 显示全部楼层
不错的知识分享。。。。。。
发表于 2015-12-5 21:06:49 | 显示全部楼层
回复 5# xayle
学习了...
发表于 2015-12-7 11:48:35 | 显示全部楼层
一个是逻辑上的等于号,一个是赋值
发表于 2015-12-8 12:55:53 | 显示全部楼层
以前我还不知道呢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-10 12:18 , Processed in 0.083209 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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