问题标签 [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.
java - BlueJ Java 复合条件
我目前正在做一些代码并且遇到问题并且无法解决它。我对此很陌生,如果有任何帮助,将不胜感激
我正在尝试为日期创建一个复合条件,但似乎无法理解如何做到这一点。
c - 如何在 C(不是 C++)中的结构中保存 const 值?
如何在结构中保存一个常量值?如果我将 const 放在 LEBEL0 上,我将无法在 LEBEL1 上分配给它。但是,如果我不在 LEBEL0 处放置 const,那么我将在 LEBEL1 处收到限定符丢失警告。有没有办法做到这一点?我想出了一个肮脏的解决方案(如下),但我认为可能会有更好的解决方案......
PS:上面的代码是一个“模型”,不是真实的代码,来说明我的问题。它没有我实际程序中的所有代码。请不要问诸如“你为什么要那样做”、“你不必那样做”、“那个代码不能编译”之类的问题。
我的肮脏解决方案
java - 为什么是“a^=b^=a^=b;” 不同于“a^=b;b^=a;a^=b;”?
我尝试了一些代码来交换 Java 中的两个整数,而不使用第三个变量,使用 XOR。
这是我尝试的两个交换功能:
此代码产生的输出是这样的:
我很想知道,为什么会有这样的说法:
和这个不一样?
java - 转换类型 char,类似的赋值行为不同
嗨,我有一段 Java 代码将一个字符移动 2,就像这样
在这种情况下,输出是“C”(如预期的那样)。但是如果我像这样重写代码:
我收到编译错误“类型不匹配:无法从 int 转换为 char”。为什么会发生这种情况,这两个assingments 不相等吗?
python - 从列表中设置 Python 属性,但在列表之外调用它们
不确定这是否是推荐的在 Python 中做事的方式。我有一个有一堆属性的类,就像这样
但是,这很乏味,我希望能够循环执行此操作:
但我后来也想这样称呼这些值:
所以问题是,我如何避免繁琐的第一种方法,其中每个属性的行都是硬编码的,但仍然可以方便地引用属性而不必知道/记住它在列表中的位置?
希望这更清楚。
谢谢
PS我正在使用Python 3
c++ - &= 和 |= 运算符是否用于布尔短路?
在 C++ 中编写这样的代码时:
check_bar()
check_foo()
如果返回将不会被评估false
。这称为短路或短路评估,是惰性评估原则的一部分。
这是否适用于复合赋值运算符&=
?
对于逻辑用和替换OR
所有。&
|
true
false
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;
c++ - C++中带self的复合赋值运算符
要计算 的平方2.0
,此代码是否
有明确定义的行为?并且,等效地,与所有其他复合赋值操作和内置类型。
types - 为什么这个任务模棱两可?
请注意,这个问题不是关于如何更改下面的代码以使其工作;相反,我正在寻找一些关于为什么编译器会发现这个赋值模棱两可的见解:
我已经使用 Modelsim Altera 10.1b 和 GHDL 0.29.1 对其进行了测试,我看到以下错误消息:
当然,如果我明确声明一个新类型(示例代码中的vowel_consonant_pair)并使用类型限定,它可以正常工作:
但是,如果绝对没有其他类型可以匹配赋值右侧的聚合,为什么这是必要的?这是工具问题,还是 VHDL 语义问题?如果是后者,有人可以提供 LRM 参考吗?
scala - 重载复合运算符,如 +=
是否可以在 Scala 中直接重载运算符 += ?它可能对某些复杂类型有用,其中 a += b 可能比 a = a + b 具有更有效和更简单的实现。
我最近遇到的案例是我Vector3f
从 jMonkeyEngine (com.jme.math) 提供算子。一个自然的实现可能如下所示:
尽管没有编译错误,但我的+=
实现从未被调用。在这种情况下,差异并不那么重要,addLocal
效率仅略好于add
,但可以想象存在一些复杂的类,其中差异可能很重要。