问题标签 [binary-operators]
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.
c++ - 使用一元和二元函数对象的 C++ 编译错误
我有一个关于拍摄 C++ 代码片段的简短问题。一旦我想评估()
运算符(在 main 方法中返回 0 之前的最后一行),我就会得到一个编译错误。代码如下所示:
编译错误是德语,但它基本上说..
现在可以调用"。
c - C 中的类型提升和类型转换
我有以下变量:
这就是我想要做的:
但是,第一行给了我错误:conversion to non-scalar type requested
第二行给了我错误:二进制的无效操作数-(有'UWORD64'和'UWORD64')
我不明白问题是什么。不应该提升低等的类型吗?为什么这会引起问题?
c++ - C++ 矩阵类重载运算符按引用返回
我正在编写模板化的矩阵类,当从运算符按值返回时出现堆栈溢出:+、-、* 对于较大的矩阵。我宁愿以某种方式通过引用返回以减轻堆栈并避免额外的复制,但是,我将不得不返回一个用new构造的对象,并打破“对每个new使用delete ”的一般规则。由于复制开销和堆栈限制问题,我无法按值返回,并且由于内存泄漏,我也无法按引用返回,那我该怎么办?
这是我的产品功能(矩阵包含二维数组元素):
我正在写这门课,因为我想在 GPU(使用 MS amp)上增强一些矩阵运算。我搜索了一个现有的解决方案,找到了 GPU 加速的线性代数库,但我在其中找不到一个带有 +、-、* 运算符的简单矩阵类。也许有人可以推荐我吗?
linux - Bash 空二元运算符
我最近进行的一项测试对以下bash
命令的输出有疑问:
结果是0
and 0
,表示两个一元运算符的返回码都没有错误。这意味着$var
解析为null
(空)和“非空”(非空),对吗?
这怎么可能?
java - 与赋值融合的一元运算
令人怀疑的结果是以下代码:
期望8作为输出,因为 'i+=2' 应该更新i,但它的行为并非如此。
输出:6
我推断速记赋值运算符按预期返回4,但未在变量 i 中更新相同的值。任何解释将不胜感激。
php - 玩参考
我明白为什么
输出 37、42、37
尽管
输出 37、37、37
在这两种情况下,都是对while$b
的引用,是指向与 相同的对象的指针。$a['ID']
$c
$a
什么时候$b
改变$a['ID']
和$c['ID']
改变,因为分配$b
改变了引用的值$a['ID']
。
当$c['ID']
更改时,一个新的 int 被分配给$a['ID']
,$b
不再引用$a['ID']
。
但这让我很痒
(产出 37、37、37)
这是定义的行为吗?我在文档中没有看到任何关于它的内容......
coding-style - 长行二元运算符的样式偏好
大多数 C++ 风格指南(例如 Google 的)建议最大行长为 80 个字符以及函数调用的相关指南,以便函数调用的格式正确。
例如,以下是谷歌的风格指南对此事的看法:
函数调用具有以下格式:
如果参数不能全部放在一行上,则应将它们分成多行,随后的每一行都与第一个参数对齐。不要在开括号之后或闭括号之前添加空格:
如果函数有很多参数,如果这会使代码更易读,请考虑每行一个:
参数可以选择全部放在后续行中,每个参数一行:
特别是,如果函数签名太长以至于无法容纳在最大行长度内,则应该这样做。
没有讨论的是二元运算符更可取的内容。这是一个风格问题,所以没有一个特别正确的答案,但我希望就人们在具有长变量名或表达式的二元运算符的情况下更喜欢什么得到一些意见。
例如,考虑简单的情况
三种格式让我眼前一亮:
前两个在我看来更直观一点,Zend Framework Style Guide推荐 #2 的格式用于 PHP 中字符串的重复连接。
至于第三个,Pear 的 PHP 样式指南建议在重复函数调用的情况下使用运算符开始新行->
,这在某种程度上类似于二元运算符。
我个人更喜欢第二种,但我只是想知道其他人的意见是什么。
c++ - 在其第一个参数中重载二进制移位运算符
我想创建一个自定义文件流类,我可以用它来打印和读取格式化(文本)和未格式化(二进制)数据。移位运算符(<< 和 >>)已经存在,以及文件流的写入和读取成员,但我想仅使用移位运算符 <<,如果流以二进制模式打开,则创建未格式化的输出,并且以其他方式格式化。
我写的代码至少对于字符串和字符(和 cstrings)不能正常工作:
问题可能出在ostream 的 shift 运算符附近,因此 ostream 的 << 和 >> 运算符不会被 chars、cstrings 和字符串重载。
你能指出我应该在哪里修改我的代码以及我应该替换什么吗?
如果您提供建议并为我的目的展示良好的做法,我也将不胜感激,因此也可以接受变通方法 - 如果它们很优雅。
java - 为什么这个 Java Switch-Case 不起作用?
因此,条件中的所有变量都是静态字符串。type
事实上,它本身就是一个字符串。
c++ - c++ 运算符求值顺序
为了找出表达式“i++ + i++ + i++ + i++”发生了什么,我编写了一个如下的测试程序。
用 g++ 4.6.3 编译它并在 Ubuntu 12.04 下运行这个程序,结果是:
通过使用我定义的类型的测试用例一和二的结果对比Int
,我预测测试用例三应该打印x 7 xx 18
,但它没有。
我的问题是如何解释结果?