Questions tagged «equality-operator»

30
JavaScript比较中应使用哪个等于运算符(== vs ===)?
这个问题的答案是社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 我正在使用JSLint来遍历JavaScript,并且在执行诸如在语句内部进行比较之类的操作时,它返回许多建议以(三个等号)替换==(两个等号)。===idSele_UNVEHtype.value.length == 0if 有没有性能优势,以代替==用===? 由于存在许多比较运算符,因此任何性能改进都将受到欢迎。 如果没有进行类型转换,那么性能会提高==吗?

15
==和!=是否相互依赖?
我正在学习C ++中的运算符重载,我看到了==,!=它们只是一些可以针对用户定义的类型进行自定义的特殊功能。但是,我担心的是,为什么需要两个单独的定义?我认为如果a == b为true,则a != b自动为false,反之亦然,并且没有其他可能性,因为根据定义,a != b为!(a == b)。而且我无法想象任何情况都不是真的。但是也许我的想象力有限,或者我什么都不知道? 我知道我可以用另一个来定义,但这不是我要问的。我也没有问比较按值或按身份比较对象之间的区别。或者两个对象是否可以同时相等和不相等(这绝对不是选择!这些东西是互斥的)。我要问的是: 是否有可能问到关于两个对象相等的问题是有意义的,而问他们不相等是没有意义的呢?(从用户角度或从实施者角度) 如果没有这种可能性,那么为什么在地球上C ++会将这两个运算符定义为两个不同的函数?


2
为什么对于许多标准库类型在C ++ 20中删除了operator!=?
根据cppreference,std::type_info::operator!=被C ++ 20删除,但是std::type_info::operator==显然仍然存在。 背后的原因是什么?我可能同意比较不平等是没有意义的,但是比较相等也同样是没有意义的,不是吗? 同样,operator!=在许多其他标准库类型中,包括容器,例如std::unordered_map::operator!=和,std::unordered_set::operator!=将根据cppreference在C ++ 20中将其删除。 相比之下,必须编写if(!(id1 == id2))并不会使任何代码更清晰if(id1 != id2),相反,相反……

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.