标签: assignment-operator

为什么Java的+ =, - =,*=,/ =复合赋值运算符需要转换?

直到今天,我还以为:

i += j;
Run Code Online (Sandbox Code Playgroud)

只是一个捷径:

i = i + j;
Run Code Online (Sandbox Code Playgroud)

但是如果我们试试这个:

int i = 5;
long j = 8;
Run Code Online (Sandbox Code Playgroud)

然后i = i + j;将不会编译但i += j;将编译正常.

这是否意味着事实上i += j;是这样的捷径 i = (type of i) (i + j)

java casting operators variable-assignment assignment-operator

3547
推荐指数
11
解决办法
28万
查看次数

什么是三法则?

  • 什么是抄袭的对象是什么意思?
  • 什么是复制构造函数复制赋值运算符
  • 我什么时候需要自己申报?
  • 如何防止复制对象?

c++ c++-faq copy-constructor assignment-operator rule-of-three

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

什么是复制和交换习语?

这个成语是什么,什么时候应该使用?它解决了哪些问题?当使用C++ 11时,成语是否会改变?

虽然在许多地方已经提到过,但我们没有任何单一的"它是什么"问题和答案,所以在这里.以下是前面提到的地方的部分列表:

c++ c++-faq copy-constructor assignment-operator copy-and-swap

1907
推荐指数
5
解决办法
34万
查看次数

R中"="和"< - "之间有什么区别?

赋值运算符=<-R 之间有什么区别?

我知道运营商略有不同,如本例所示

x <- y <- 5
x = y = 5
x = y <- 5
x <- y = 5
# Error in (x <- y) = 5 : could not find function "<-<-"
Run Code Online (Sandbox Code Playgroud)

但这是唯一的区别吗?

r assignment-operator r-faq

670
推荐指数
7
解决办法
19万
查看次数

准确理解data.table何时是对另一个data.table的引用(与副本)

我在理解传递的引用属性方面遇到了一些麻烦data.table.有些操作似乎"打破"了参考,我想准确理解发生了什么.

data.table从另一个创建a 时data.table(通过<-,然后更新新表:=,原始表也会被更改.这是预期的,按照:

?data.table::copystackoverflow:传递引用操作在数据表包中

这是一个例子:

library(data.table)

DT <- data.table(a=c(1,2), b=c(11,12))
print(DT)
#      a  b
# [1,] 1 11
# [2,] 2 12

newDT <- DT        # reference, not copy
newDT[1, a := 100] # modify new DT

print(DT)          # DT is modified too.
#        a  b
# [1,] 100 11
# [2,]   2 12
Run Code Online (Sandbox Code Playgroud)

但是,如果我:=<-赋值和:=上面的行之间插入非基础修改,DT现在不再修改:

DT = data.table(a=c(1,2), b=c(11,12))
newDT …
Run Code Online (Sandbox Code Playgroud)

copy r reference assignment-operator data.table

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

R中`=`和`<-`之间有什么区别?

可能重复:
R中的赋值运算符:'='和'< - '

我正在使用R 2.8.1并且可以使用它们=<-作为变量赋值运算符.他们之间有什么区别?我应该使用哪一个?

r variable-assignment assignment-operator

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

PHP中的引用赋值运算符,=&

什么是=&(等于-号)赋值运算符在PHP中呢?

它被弃用了吗?

php operators assignment-operator

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

如何在C++中使用基类的构造函数和赋值运算符?

我有一个B包含一组构造函数和赋值运算符的类.

这里是:

class B
{
 public:
  B();
  B(const string& s);
  B(const B& b) { (*this) = b; }
  B& operator=(const B & b);

 private:
  virtual void foo();
  // and other private member variables and functions
};
Run Code Online (Sandbox Code Playgroud)

我想创建一个D只覆盖函数的继承类,foo()不需要进行其他更改.

但是,我希望D拥有相同的构造函数集,包括复制构造函数和赋值运算符B:

D(const D& d) { (*this) = d; }
D& operator=(const D& d);
Run Code Online (Sandbox Code Playgroud)

我是否必须重写所有这些D,或者有没有办法使用B的构造函数和运算符?我特别想避免重写赋值运算符,因为它必须访问所有B的私有成员变量.

c++ inheritance constructor assignment-operator

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

Java中的快捷方式"or-assignment"(| =)运算符

我在Java中有很长的比较,我想知道它们中的一个或多个是否真实.比较字符串很长且难以阅读,因此我将其分解以便于阅读,并自动使用快捷操作符|=而不是negativeValue = negativeValue || boolean.

boolean negativeValue = false;
negativeValue |= (defaultStock < 0);
negativeValue |= (defaultWholesale < 0);
negativeValue |= (defaultRetail < 0);
negativeValue |= (defaultDelivery < 0);
Run Code Online (Sandbox Code Playgroud)

negativeValue如果任何默认的<something>值为负,我希望是真的.这有效吗?它会做我期望的吗?我在Sun的网站或stackoverflow上看不到它,但Eclipse似乎没有问题,代码编译和运行.


同样,如果我想执行几个逻辑交叉点,我可以使用&=而不是&&吗?

java assignment-operator or-operator compound-assignment

84
推荐指数
2
解决办法
6万
查看次数

Scala分配评估单元而不是分配的值的动机是什么?

Scala分配评估单元而不是分配的值的动机是什么?

I/O编程中的一个常见模式是执行以下操作:

while ((bytesRead = in.read(buffer)) != -1) { ...
Run Code Online (Sandbox Code Playgroud)

但这在Scala中是不可能的,因为......

bytesRead = in.read(buffer)
Run Code Online (Sandbox Code Playgroud)

..返回Unit,而不是bytesRead的新值.

从函数式语言中省略,似乎是一件有趣的事情.我想知道为什么这样做了?

io functional-programming scala assignment-operator

82
推荐指数
4
解决办法
7202
查看次数