Questions tagged «equality»

相等是两个或多个项目或变量或对象之间存在的关系,如果(1)项目是相同的项目,变量或对象,或者(2)项目是不同的项目,变量或对象,但它们具有相同的值。此标记通常应与特定于编程语言的标记以及其他上下文标记(例如数据库系统)一起使用。该帖子应尽可能包含有关平等测试的上下文。

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

14
为什么使用'=='或'is'比较字符串有时会产生不同的结果?
我有一个Python程序,其中将两个变量设置为value 'public'。在条件表达式我有比较var1 is var2其失败,但如果我把它改为var1 == var2返回True。 现在,如果我打开Python解释器并进行相同的“是”比较,则成功。 >>> s1 = 'public' >>> s2 = 'public' >>> s2 is s1 True 我在这里想念什么?

23
如何比较Java中的字符串?
这个问题的答案是社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 Наэтотвопросестьответына 堆栈溢出нарусском:КаксравниватьстрокивJava的? ==到目前为止,我一直在程序中使用运算符比较所有字符串。但是,我遇到了一个错误,将其中一个更改为错误.equals(),并修复了该错误。 是==坏?什么时候应该使用它,不应该使用它?有什么不同?
724 java  string  equality 

14
“ ==”和“是”之间有区别吗?
这个问题的答案是社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 我的Google Fu使我失败了。 在Python中,以下两个相等测试是否等效? n = 5 # Test one. if n == 5: print 'Yay!' # Test two. if n is 5: print 'Yay!' 这是否适用于您要比较实例(list说)的对象? 好的,这样可以回答我的问题: L = [] L.append(1) if L == [1]: print 'Yay!' # Holds true, but... if L is [1]: print 'Yay!' # Doesn't. 因此,==测试会重视在哪里is进行测试以查看它们是否是同一对象?


7
equal?,eql?,===和==之间有什么区别?
我试图了解这四种方法之间的区别。我知道默认情况下会==调用equal?当两个操作数引用完全相同的对象时返回true 的方法。 ===默认情况下也调用==哪个调用equal?...好的,因此,如果这三个方法都未被覆盖,那么我猜想 ===,==并且equal?做的完全一样吗? 现在来了eql?。这是做什么的(默认情况下)?它是否调用操作数的哈希/ ID? 为什么Ruby有这么多相等标志?他们应该在语义上有所不同吗?


10
在Python类中支持等价(“平等”)的优雅方法
编写自定义类时,通过==和!=运算符允许等效性通常很重要。在Python中,这可以通过分别实现__eq__和__ne__特殊方法来实现。我发现执行此操作的最简单方法是以下方法: class Foo: def __init__(self, item): self.item = item def __eq__(self, other): if isinstance(other, self.__class__): return self.__dict__ == other.__dict__ else: return False def __ne__(self, other): return not self.__eq__(other) 您知道这样做更优雅的方法吗?您知道使用上述__dict__s 比较方法有什么特别的缺点吗? 注意:需要澄清一点-当__eq__和__ne__未定义时,您会发现以下行为: >>> a = Foo(1) >>> b = Foo(1) >>> a is b False >>> a == b False 也就是说,a …

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


16
覆盖isEqual:和哈希的最佳实践
您如何isEqual:在Objective-C中正确覆盖?“捕获”似乎是如果两个对象相等(由isEqual:方法确定),则它们必须具有相同的哈希值。 《可可基础知识指南》的 “ 内省”部分确实有一个示例,说明如何重写名为的类,如下所示:isEqual:MyWidget - (BOOL)isEqual:(id)other { if (other == self) return YES; if (!other || ![other isKindOfClass:[self class]]) return NO; return [self isEqualToWidget:other]; } - (BOOL)isEqualToWidget:(MyWidget *)aWidget { if (self == aWidget) return YES; if (![(id)[self name] isEqual:[aWidget name]]) return NO; if (![[self data] isEqualToData:[aWidget data]]) return NO; return …

6
False == 0和True == 1是实现细节还是由语言保证?
是否可以保证False == 0和True == 1,在Python中(假设用户没有重新分配它们)?例如,是否以任何方式保证以下代码将始终产生相同的结果,而不管Python的版本如何(既有现有版本,也可能是未来版本)? 0 == False # True 1 == True # True ['zero', 'one'][False] # is 'zero' 任何对官方文档的引用将不胜感激! 编辑:如许多答案所述,bool继承自int。因此,可以将问题改写为:“文档是否正式声明程序员可以依赖从整数(带有值0和1?)继承的布尔值 ”。这个问题与编写不会因为实现细节而失败的健壮代码有关!

15
比较对象实例的属性是否相等
我有一个类MyClass,其中包含两个成员变量foo和bar: class MyClass: def __init__(self, foo, bar): self.foo = foo self.bar = bar 我有这样的类,其每个具有相同值的两个实例foo和bar: x = MyClass('foo', 'bar') y = MyClass('foo', 'bar') 但是,当我比较它们的相等性时,Python返回False: >>> x == y False 如何使python认为这两个对象相等?
243 python  equality 



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.