谁能解释一下为什么在下面的第一个例子中,比较返回false
?在第二个例子中,你可以看到只要改变第一个字符它就会返回true相反。
我错过了什么?
(1 != "1f9bb589-434d-46ce-9b0d-fe101619ce6f") -> bool(false)
和
(1 != "2f9bb589-434d-46ce-9b0d-fe101619ce6f") -> bool(true)
!=
运算符执行与类型杂耍的比较。由于第一个操作数是整型,所以比较操作以数字形式执行,并且第二个操作数也被强制为整型。这意味着取第一个数字序列并将其转换为int型,之后的所有内容都被丢弃。在第一个例子中,第一个数字序列是"1",所以你得到1 != 1
,这显然是假的。在第二个例子中,你同样得到1 != 2
,这显然是正确的。