标签: equals-operator

如何!=和==运算符在Java中使用整数?

以下代码似乎让我感到困惑,因为它提供了两个不同的输出.代码在jdk 1.7上进行了测试.

public class NotEq {

public static void main(String[] args) {

    ver1();
    System.out.println();
    ver2();
}

public static void ver1() {
    Integer a = 128;
    Integer b = 128;

    if (a == b) {
        System.out.println("Equal Object");
    }

    if (a != b) {
        System.out.println("Different objects");
    }

    if (a.equals(b)) {
        System.out.println("Meaningfully equal.");
    }
}

public static void ver2() {
    Integer i1 = 127;
    Integer i2 = 127;
    if (i1 == i2) {
        System.out.println("Equal Object");
    }

    if (i1 != i2){
        System.out.println("Different objects");
    } …
Run Code Online (Sandbox Code Playgroud)

java integer wrapper operator-keyword equals-operator

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

10
推荐指数
2
解决办法
654
查看次数

php重载equals-operator

在PHP程序中,我有一些自定义对象的数组,我想找到数组是否包含某个对象.当然我可以使用array_search,但这会检查对象是否是同一个对象,而不是它是否具有相同的变量.所以我希望能够为对象创建自己的比较函数,我可以使用它与array_search方法(或类似的东西).我希望能够做到这样的事情:

class foo
{
    public $_a,$_b;
    function __construct($a,$b)
    {
        $this->_a = $a;
        $this->_b = $b;
    }

    function __equals($object)
    {
        return $this->_a == $object->_a;
    }
}
$f1 = new foo(5,4);
$f2 = new foo(4,6);
$f3 = new foo(4,5);

$array = array($f1,$f2);
$idx = array_search($f3,$array); // return 0
Run Code Online (Sandbox Code Playgroud)

这样的事情可能吗?我知道我也可以创建自己的array_search方法,该方法使用类中的方法,但是我必须使用2个不同的搜索函数,一个用于具有自己的比较函数的类,另一个用于具有自己的比较函数的类.吨.

php overloading equals-operator

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

Java的'=='运算符是双精度数

此方法返回'true'.为什么?

public static boolean f() {
   double val = Double.MAX_VALUE/10;
   double save = val;
   for (int i = 1; i < 1000; i++) {
       val -= i;
   }
   return (val == save);
}
Run Code Online (Sandbox Code Playgroud)

java floating-point equals-operator

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

所有PHP相等比较都是对称的吗?

是否$a == $b总是等同于$b == $a

我认为在JavaScript中有一些奇怪的情况,由于投射,这是不正确的.

我认为ide是正确的.我会问另一个问题.

php comparison equals-operator

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

如何简单地比较C++中的字符?

我有以下代码:

#include <iostream>
using namespace std;
int main()
{
    char fg;
    cin>>fg;
    char x[20];
    x[0]='0';
    if(fg=x[0])
    {
        cout<<"It's true!"<<endl;
        return true;

    }
    cout<<"It's false!"<<endl;
    return false;
}
Run Code Online (Sandbox Code Playgroud)

无论我给出什么输入,true总是返回.我的语法是否关闭?任何帮助,将不胜感激.

c++ char equals-operator

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

C#隐式转换和==运算符

上下文的一些代码:

class a
{

}

class b
{
    public a a{get;set;}
    public static implicit operator a(b b)
    {
        return b.a;
    }
}

  a a=null;
  b b=null;
  a = b;

  //compiler: cannot apply operator '==' to operands of type tralala...
  bool c = a == b; 
Run Code Online (Sandbox Code Playgroud)

是否可以在不同类型的实例上使用==运算符,其中一个可以隐式转换为另一个?我错过了什么?

编辑:
如果类型必须是相同的调用==,那么为什么

int a=1;
double b=1;
bool c=a==b; 
Run Code Online (Sandbox Code Playgroud)

作品?

c# operators type-conversion equals-operator

7
推荐指数
2
解决办法
8953
查看次数

重载==函数

我目前正在为==运算符创建一个重载函数.我正在为我的链表创建一个hpp文件,我似乎无法让这个操作符在hpp文件中工作.

我目前有这个:

template <typename T_>
class sq_list 
{

bool operator == ( sq_list & lhs, sq_list & rhs) 
{
    return *lhs == *rhs;
};

reference operator * ()     {
        return _c;
    };

};
}
Run Code Online (Sandbox Code Playgroud)

我得到大约10个错误,但它们几乎重复为错误:

C2804:二进制'运算符=='参数太多
C2333:'sq_list :: operator ==':函数声明错误; 跳过函数体
C2143:语法错误:缺少';' 在'*'
C4430 之前:缺少类型说明符 - 假设为int.注意:C++不支持default-int

我试过改变一些事情,但我一直得到与上面相同的错误

任何提示或帮助都非常感谢.

c++ templates operator-overloading operators equals-operator

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

为什么不= =实现调用等于Guid?

我已经在.NET Framework的GUID类型的源代码中看到Equals的实现和==操作符执行非常相似的代码.

为什么==操作符不在firts参数上调用Equals方法?像这样的东西:

public static bool operator ==(Guid a, Guid b)
{ 
    return a.Equals(b);  
}
Run Code Online (Sandbox Code Playgroud)

.net c# equals-operator

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

为什么在控制台中通过==的参数来改变输出?

如果我打开浏览器控制台(在Chrome/Firefox中测试)并输入:

null == {}
Run Code Online (Sandbox Code Playgroud)

我明白了:

但是,如果我将两个参数都传递给==运算符,而是键入:

{} == null
Run Code Online (Sandbox Code Playgroud)

我明白了:

未捕获的SyntaxError:意外的令牌==

图片:

在此输入图像描述

  • 为什么会这样?
  • 为什么这只发生在控制台中,而不是在浏览器在HTML页面中执行脚本时?

编辑:

问题35812626个地址本,并解释为JS解析原因{}作为代码块,它使用三重等于(严格比较)运算符===,而不是双等于==.正如用户在下面指出的那样,绝对可以遵循代码块==而不会导致语法错误:

{} == {} // false
Run Code Online (Sandbox Code Playgroud)

怎么会这样,我的例子没有?

javascript equals-operator browser-console

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