标签: equality

我想在2字节数组之间使用Extension方法"Equals"

我正在做一些byte []比较.

我试过==但这就像基本的Equals,它:

byte[] a = {1,2,3};
byte[] b = {1,2,3};
bool equals = a == b; //false
equals = a.Equals(b); //false
Run Code Online (Sandbox Code Playgroud)

我试图添加一个扩展方法,但由于重载的基类'Equals采用相同的参数,它转到基本方法而不是扩展,无论如何我可以使用Equals扩展(不要改变它的名字......)或(甚至更好)使用==运算符?

这是我实际要比较的内容:

public static bool ContentEquals(this byte[] array, byte[] bytes)
{
    if (array == null || bytes == null) throw new ArgumentNullException();
    if( array.Length != bytes.Length) return false;
    for (int i = 0; i < array.Length; i++)
        if (array[i] != bytes[i]) return false;

    return true;
}
Run Code Online (Sandbox Code Playgroud)

c# binary comparison equality bytearray

1
推荐指数
2
解决办法
3871
查看次数

变量===值和值===变量之间的区别?

一个)

  if(null === $object)
    {
    //take some action
    }
Run Code Online (Sandbox Code Playgroud)

b)

  if($object === null)
    {
    //take some action
    }
Run Code Online (Sandbox Code Playgroud)

我习惯于像b)那样做,但是在Zend-Framework中,我发现他们所做的每件事都像a).它有什么好处吗?

谢谢.

php zend-framework equality

1
推荐指数
1
解决办法
350
查看次数

为什么"foo"不是===到/ foo /当比赛成功时?

Ruby语法参考说明了case语句:

比较由运营商完成 ===

事实上,例如:

ruby -e 'puts (1..3) === 2'
Run Code Online (Sandbox Code Playgroud)

打印true,但是:

ruby -e 'puts "foo" === /foo/'
Run Code Online (Sandbox Code Playgroud)

打印false,还:

ruby -e 'puts :foo === /foo/'
Run Code Online (Sandbox Code Playgroud)

打印false,但所有这些示例都是case语句的成功条件.它是如何工作的?

ruby syntax equality case

1
推荐指数
1
解决办法
80
查看次数

为什么integer.equals(string)在包含相同值但不抛出类型不匹配异常时给出false?

我有代码,我得到一个字符串作为输入,我将它与一个整数进行比较.

我看到整数变量也有一个Equals接受字符串参数的函数.

我直接用它来认为它会对它进行类型化.

它没有给出任何编译时或运行时错误,但它总是给出错误的结果.

例如,

int sessionId = 1;

string requestId="1"

return sessionId.Equals(requestId);
Run Code Online (Sandbox Code Playgroud)

sessionId.Equals(requestId) 总是假的.

这种行为的原因是什么?如果有原因,为什么他们允许它运行没有错误?

.net c# equality equals

1
推荐指数
1
解决办法
3915
查看次数

DDD值对象相等,== vs .Equals()

所以我有一个价值object,(任意说钱),我想为它实现平等.我知道==.Equals()(参考和数据相等)的预期/默认行为.

在这种情况下,我希望能够比较两个对象,并说它们相当于计算(例如1m和3ft是等效的)但是对于持久性(使用NHibernate,isDirty我认为取决于相等),用户显示和选择货币,我希望它们被认为是不同的.

在这种情况下,我应该

  1. 有不同的行为==.Equals()(以及应该做什么),
  2. 无论我想在哪里检查等效性,只需检查每个属性(意味着额外的代码)
  3. 实现一种方法.IsEquivalent()(我不想做后者)
  4. 我缺少的其他东西

我应该遵循最佳实践/模式吗?谢谢

编辑:我得到了一些关于改变汇率的回应.所以要更新清晰度.让我们说高度,而不是货币

  • 我想澄清一些假设:
  • // ignore:值对象包含十进制数量,字符串/类货币
  • // ignore:汇率不会改变.
  • // ignore:类货币知道它与另一个货币的汇率
  • value对象包含十进制数,字符串/类单元
  • 类单位知道它与另一个的转换
  • 我不打算扩大费率/转换率等

与实施货币相比,我更关注实践和模式.基本上,相同的方法是一个人的身高,其中身高是一个价值对象,({1,m}到{3,ft},其中1m总是"等于"/"相当于"3ft)

c# nhibernate domain-driven-design equality value-objects

1
推荐指数
1
解决办法
767
查看次数

如何测试数字为零java

我似乎无法弄清楚如何测试一个数字以查看它是否为零。不能有人告诉我我错过了什么。

getMin = Number.class
getMax = Number.class
Run Code Online (Sandbox Code Playgroud)

测试

Number value = mvFacet.getMin() > 0 ? mvFacet.getMin() : mvFacet.getMax();
System.out.println(value.toString());
Run Code Online (Sandbox Code Playgroud)

java numbers equality

1
推荐指数
2
解决办法
1433
查看次数

为什么Java等于(Object O)方法没有可以将特定对象类型(例如String,Integer等)作为输入的变量?

我遇到了一些问题,我需要使用Java语言比较两个字符串(或任何其他对象)的相等/不相等.String Object上有两种方法对此目的非常有用.compareTo(Object O),返回一个比较的整数结果而另一个equals(Object o)返回一个布尔值.我的问题是,虽然有一个变量compareTo()将特定的String作为输入而不是通用的Object,为什么没有这样的变体equals()?我经常遇到的一个问题是,当我在一个对象上调用equals方法并将通用对象作为参数传递时,它不会抛出任何编译错误.考虑下面的代码片段(这不是一个真实的例子,但我写的只是说明我的观点).

String testStr = new String("1");
Integer testInt = new Integer(1);

testStr.compareTo(testInt.toString()); // compiles
testStr.equals(testInt.toString());    // compiles

testStr.equals(testInt);               // compiles and will be always false 
testStr.compareTo(testInt);            // doesn't compile
Run Code Online (Sandbox Code Playgroud)

java generics equality string-comparison method-signature

1
推荐指数
1
解决办法
151
查看次数

Javascript相等运算符

在David Flanagan的Javascript指南中,有一个声明:

==运算符永远不会尝试将其操作数转换为布尔值

所以我在这里做了一点测试:

var a = false;
var b = ""; // empty string
a == b; //returns true
Run Code Online (Sandbox Code Playgroud)

看一下抽象等式比较算法有一点:

即 如果Type(x)是布尔值,如果x和y都为true或两者都为false,则返回true.否则,返回false.

如果y是字符串数据类型(没有转换),x和y如何都是真的?

javascript equality

1
推荐指数
1
解决办法
94
查看次数

&lt;span&gt;content&lt;/span&gt; == $0 在 html 中是什么意思?

我在谷歌云前端找到了一个使用这种语法的按钮,我只是想知道它是关于什么的……感谢您的输入!

在此处输入图片说明

我喜欢设计模式,并且最近对 Web 开发有了更多的了解,所以如果这是一个非常基本的问题,请原谅我!

html equality

1
推荐指数
1
解决办法
5339
查看次数

证明功能的平等

鉴于这两个功能:

sumOne 0 = 0                                     --   I.a
sumOne m | m > 0 = sumOne (m-1) + m              --  II.a

endSum m = helpSum 0 m                           --   I.b
 where helpSum x 0 = x                           --  II.b
       helpSum x m | m > 0 = helpSum (x+m) (m-1) -- III.b
Run Code Online (Sandbox Code Playgroud)

我们必须通过归纳证明sumOne = endSum.

所以我尝试过:

对于 n=0

sumOne 0=0 == endSum 0 = helpSum 0 0 = 0   True
Run Code Online (Sandbox Code Playgroud)

假设:

sumOne m + k = helpSumm k m
Run Code Online (Sandbox Code Playgroud)

诱导步骤:

-> m=m+1
helpSum …
Run Code Online (Sandbox Code Playgroud)

haskell equality induction

1
推荐指数
1
解决办法
116
查看次数