duanqs 发表于 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. 字符串比较功能.
一不留神会犯混淆使用的. 切记.
通常情况下, 做判断时, 建议还是多用数值比较要好一些, 就是说多用"=', 少用"==".
今天在使用一个变量当作月份, 进行判断时就犯了这种低级错误.

duanqs 发表于 2015-12-3 15:26:26

另外,
对于用作数值比较符的"=",
au3会自动地把要比较的变量先进行数值转换(相当于做Number()处理), 然后进行比较.
对于用作字符串比较符的"==",
au3会自动地把要比较的变量先进行字符串转换(相当于做String()处理), 然后进行比较.

俺这样理解, 应该没错吧.
愿听您的高见.

duanqs 发表于 2015-12-3 15:36:06

代码片的字号想调整大一些, 可是为什么不行呢.

....

不是这样操作吗?
劳驾懂的朋友, 请指点一二.

xayle 发表于 2015-12-3 21:30:18

数字加了引号后就不是数值而是字符, 一个等号字符或数值相等即匹配, 两个等号字符或数值必须完全相等才可匹配.

xayle 发表于 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代码 要有起始 要有结束

duanqs 发表于 2015-12-3 22:01:19

"两个等号字符或数值必须完全相等才可匹配."
Xayle兄, 顶你的这句总结. 谢谢.

duanqs 发表于 2015-12-3 22:06:22

数字加了引号后就不是数值而是字符, 一个等号字符或数值相等即匹配, 两个等号字符或数值必须完全相等才可匹 ...
xayle 发表于 2015-12-3 21:30 http://www.autoitx.com/images/common/back.gif

受教! 多谢.

jsgh1983 发表于 2015-12-3 23:19:37

长知识了,不注意真容易犯这种错误!谢谢分享知识!

dncsk 发表于 2015-12-4 11:13:41

涨姿势 谢谢

樱花雪月 发表于 2015-12-4 15:36:37

数字 = 字符==

xhz9808 发表于 2015-12-4 18:20:55

涨姿势 谢谢

ddrs 发表于 2015-12-5 21:03:21

不错的知识分享。。。。。。

ura 发表于 2015-12-5 21:06:49

回复 5# xayle
学习了...

wuwujun 发表于 2015-12-7 11:48:35

一个是逻辑上的等于号,一个是赋值

xin266 发表于 2015-12-8 12:55:53

以前我还不知道呢
页: [1] 2
查看完整版本: 等号的神奇功能