问题标签 [compound-assignment]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
505 浏览

java - BlueJ Java 复合条件

我目前正在做一些代码并且遇到问题并且无法解决它。我对此很陌生,如果有任何帮助,将不胜感激

我正在尝试为日期创建一个复合条件,但似乎无法理解如何做到这一点。

0 投票
2 回答
1950 浏览

c - 如何在 C(不是 C++)中的结构中保存 const 值?

如何在结构中保存一个常量值?如果我将 const 放在 LEBEL0 上,我将无法在 LEBEL1 上分配给它。但是,如果我不在 LEBEL0 处放置 const,那么我将在 LEBEL1 处收到限定符丢失警告。有没有办法做到这一点?我想出了一个肮脏的解决方案(如下),但我认为可能会有更好的解决方案......

PS:上面的代码是一个“模型”,不是真实的代码,来说明我的问题。它没有我实际程序中的所有代码。请不要问诸如“你为什么要那样做”、“你不必那样做”、“那个代码不能编译”之类的问题。

我的肮脏解决方案

0 投票
6 回答
7281 浏览

java - 为什么是“a^=b^=a^=b;” 不同于“a^=b;b^=a;a^=b;”?

我尝试了一些代码来交换 Java 中的两个整数,而不使用第三个变量,使用 XOR。

这是我尝试的两个交换功能:

此代码产生的输出是这样的:

我很想知道,为什么会有这样的说法:

和这个不一样?

0 投票
1 回答
39 浏览

java - 转换类型 char,类似的赋值行为不同

嗨,我有一段 Java 代码将一个字符移动 2,就像这样

在这种情况下,输出是“C”(如预期的那样)。但是如果我像这样重写代码:

我收到编译错误“类型不匹配:无法从 int 转换为 char”。为什么会发生这种情况,这两个assingments 不相等吗?

0 投票
1 回答
106 浏览

python - 从列表中设置 Python 属性,但在列表之外调用它们

不确定这是否是推荐的在 Python 中做事的方式。我有一个有一堆属性的类,就像这样

但是,这很乏味,我希望能够循环执行此操作:

但我后来也想这样称呼这些值:

所以问题是,我如何避免繁琐的第一种方法,其中每个属性的行都是硬编码的,但仍然可以方便地引用属性而不必知道/记住它在列表中的位置?

希望这更清楚。

谢谢

PS我正在使用Python 3

0 投票
6 回答
57665 浏览

c++ - &= 和 |= 运算符是否用于布尔短路?

在 C++ 中编写这样的代码时:

check_bar()check_foo()如果返回将不会被评估false。这称为短路或短路评估,是惰性评估原则的一部分。

这是否适用于复合赋值运算符&=

对于逻辑用和替换OR所有。&|truefalse

0 投票
1 回答
137 浏览

objective-c - ObjC 属性和 C 运算符

给定以下属性声明:

递增、递减和复合赋值运算符实际上是如何工作的self.foo

据我了解,这self.foo只是实际访问器方法的语法糖。所以self.foo不是直接访问一个NSInteger名为 的变量foo,而是调用任何一个:

或者

然而,以下代码集非常好,没有标记,编译正常,并且完全返回了预期的结果:

而且我认为可以安全地假设递减 pre 和 post fix 运算符以及其他 9 个复合运算符将完全按照您在NSInteger变量上使用它们时的预期效果。

我只是不明白为什么它self.foo真的只是我上面提到的两种方法的语法糖。

如果我覆盖默认访问器以包含NSLog语句,以便我可以看到每个访问器何时被调用以及使用什么值,我可以看到首先调用 getter,然后调用 setter。

这是否意味着以下内容:

被有效地替换为:

在预编译期间?


编辑:self.foo += 1;那么,在装配层面,和之间有什么区别self.foo = self.foo + 1;吗?如果我们不是在谈论一个属性,而只是一个普通的 int,那么在汇编级别,和bar之间有区别吗?bar += 1;bar = bar + 1;

0 投票
2 回答
302 浏览

c++ - C++中带self的复合赋值运算符

要计算 的平方2.0,此代码是否

有明确定义的行为?并且,等效地,与所有其他复合赋值操作和内置类型。

0 投票
1 回答
2161 浏览

types - 为什么这个任务模棱两可?

请注意,这个问题不是关于如何更改下面的代码以使其工作;相反,我正在寻找一些关于为什么编译器会发现这个赋值模棱两可的见解:

我已经使用 Modelsim Altera 10.1b 和 GHDL 0.29.1 对其进行了测试,我看到以下错误消息:

当然,如果我明确声明一个新类型(示例代码中的vowel_consonant_pair)并使用类型限定,它可以正常工作:

但是,如果绝对没有其他类型可以匹配赋值右侧的聚合,为什么这是必要的?这是工具问题,还是 VHDL 语义问题?如果是后者,有人可以提供 LRM 参考吗?

0 投票
1 回答
163 浏览

scala - 重载复合运算符,如 +=

是否可以在 Scala 中直接重载运算符 += ?它可能对某些复杂类型有用,其中 a += b 可能比 a = a + b 具有更有效和更简单的实现。

我最近遇到的案例是我Vector3f从 jMonkeyEngine (com.jme.math) 提供算子。一个自然的实现可能如下所示:

尽管没有编译错误,但我的+=实现从未被调用。在这种情况下,差异并不那么重要,addLocal效率仅略好于add,但可以想象存在一些复杂的类,其中差异可能很重要。