标签: assignment-operator

为什么Java没有条件和条件或运算符的复合赋值版本?(&& =,|| =)

因此,对于在布尔二元运算符,Java有&,|,^,&&||.

让我们简要总结一下他们在这里简要介绍的内容:

对于&,结果值是true两个操作数值是否为true; 否则,结果是false.

对于|,结果值是false两个操作数值是否为false; 否则,结果是true.

对于^,结果值是true操作数值是否不同; 否则,结果是false.

&&操作是一样&,但是评估其右边的操作数只有在其左侧操作数的值true.

||操作是一样|的,但评估其右边的操作数只有在其左侧操作数的值false.

现在,所有5间,那些3有复合赋值版本,分别为|=,&=^=.所以我的问题是显而易见的:为什么不是Java提供&&=||=呢?我发现我需要那些比我更需要更多的&=|=.

而且我不认为"因为它太长"是一个很好的答案,因为Java有>>>=.这个遗漏必须有更好的理由.


15.26分配运营商 …

java conditional-operator short-circuiting assignment-operator compound-assignment

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

Java赋值运算符执行

在Java中,我理解赋值求值为右操作数的值,所以像x == (y = x)evaluate 这样的语句true.

但是,此代码输出false.

public static void main(String[]args){
    String x = "hello";
    String y = "goodbye";
    System.out.println(x.equals(x = y));
}
Run Code Online (Sandbox Code Playgroud)

为什么是这样?在我的理解中,它首先评估(x = y),分配xy,然后返回值y.然后x.equals(y)是评估,这应该是true因为xy现在应该共享相同的引用,而是,我得到false.

显示源的屏幕截图以及输出为

这里发生了什么?

java string equals assignment-operator

74
推荐指数
4
解决办法
3423
查看次数

是否有可能重载Python赋值?

有没有一个可以重载赋值运算符的魔术方法,比如__assign__(self, new_value)

我想禁止重新绑定一个实例:

class Protect():
  def __assign__(self, value):
    raise Exception("This is an ex-parrot")

var = Protect()  # once assigned...
var = 1          # this should raise Exception()
Run Code Online (Sandbox Code Playgroud)

可能吗?这是疯了吗?我应该上药吗?

python methods class magic-methods assignment-operator

65
推荐指数
7
解决办法
3万
查看次数

为什么复制赋值运算符必须返回引用/ const引用?

在C++中,我不清楚从复制赋值运算符返回引用的概念.为什么复制赋值运算符不能返回新对象的副本?另外,如果我上课A,还有以下内容:

A a1(param);
A a2 = a1;
A a3;

a3 = a2; //<--- this is the problematic line
Run Code Online (Sandbox Code Playgroud)

operator=定义如下:

A A::operator=(const A& a)
{
    if (this == &a)
    {
        return *this;
    }
    param = a.param;
    return *this;
}
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading copy-constructor assignment-operator

62
推荐指数
4
解决办法
4万
查看次数

为什么C#中没有|| =或&& =运算符?

我们为所有逻辑运算符,Shift运算符,Additive运算符和所有Multiplicative运算符都有等效的赋值运算符.

为什么逻辑运算符被遗漏了?难道有一个很好的技术理由吗?

c# language-design operators assignment-operator compound-assignment

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

复制构造函数和赋值运算符

如果我覆盖operator=,复制构造函数会自动使用new运算符吗?同样,如果我定义了一个拷贝构造函数,会operator=自动"继承"拷贝构造函数的行为吗?

c++ constructor operators copy-constructor assignment-operator

50
推荐指数
3
解决办法
6万
查看次数

这个赋值运算符后的&符是什么意思?

我正在阅读关于"五条规则"的这个很好的答案,我注意到一些我以前没有记得的事情:

class C {
  ...
  C& operator=(const C&) & = default;
  C& operator=(C&&) & = default;
  ...
};
Run Code Online (Sandbox Code Playgroud)

&放置在= default复制赋值运算符和移动赋值运算符前面的字符的用途是什么?有没有人有这方面的参考?

c++ assignment-operator default-implementation c++11

48
推荐指数
2
解决办法
3271
查看次数

Python中的多个赋值和求值顺序

以下Python表达式之间有什么区别:

# First:

x,y = y,x+y

# Second:

x = y
y = x+y
Run Code Online (Sandbox Code Playgroud)

首先给出与第二个不同的结果.

例如,

第一:

>>> x = 1
>>> y = 2
>>> x,y = y,x+y
>>> x
2
>>> y
3
Run Code Online (Sandbox Code Playgroud)

第二:

>>> x = 1
>>> y = 2
>>> x = y
>>> y = x+y
>>> x
2
>>> y
4
Run Code Online (Sandbox Code Playgroud)

y第一个中是3,在第二个中是4

python assignment-operator

47
推荐指数
4
解决办法
4万
查看次数

PHP的=&运算符

这两个PHP语句都做同样的事情吗?:

$o =& $thing;

$o = &$thing;
Run Code Online (Sandbox Code Playgroud)

php assignment-operator

45
推荐指数
4
解决办法
5万
查看次数

在c ++中使用私有拷贝构造函数有什么用处

为什么人们定义私有拷贝构造函数?

何时使复制构造函数和赋值运算符私有化是一个好的设计?

如果有哪个是指针或处理到一个唯一的对象(如文件名)类没有成员,然后笏其他情况下都存在,其中私人拷贝构造函数是一个好主意?

同样的问题适用于赋值运算符.鉴于大多数C++围绕复制对象并通过引用传递,是否有任何涉及私有拷贝构造函数的好设计?

c++ copy-constructor assignment-operator

42
推荐指数
2
解决办法
3万
查看次数