问题标签 [operator-precedence]

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 投票
3 回答
216 浏览

java - java使用快捷操作符执行操作的方式与常规操作符有区别吗?

我正在研究一个关于帕斯卡三角形的java程序。

所以这是它的编码方式:

它显示:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1

但是当我尝试将代码更改为:

您可能已经注意到,只有运算符更改为 *=,但结果是:

1
1 1
1 2 0
1 3 3 0
1 4 4 0 0

知道一定发生了什么吗?提前致谢!

0 投票
2 回答
2812 浏览

arrays - PowerShell 的 -f 运算符的 RHS *究竟*如何工作?

上次我对PowerShell急切展开集合的方式感到困惑时,Keith 总结了它的启发式如下:

将结果(数组)放在分组表达式(或子表达式,例如 $())中使其再次符合展开的条件。

我已经把这个建议铭记在心,但仍然发现自己无法解释一些深奥的东西。特别是, Format 运算符似乎不遵守规则。

应用我们在上一个问题中看到的相同模式,很明显为什么像 #1 和 #5 这样的情况表现不同:管道运算符向脚本引擎发出信号以展开另一个级别,而赋值运算符没有。换句话说,位于两个 | 之间的所有内容都被视为一个分组表达式,就好像它在 () 中一样。

出于同样的原因,案例#7 与#5 相比没有任何改进。任何添加额外Wrap的尝试都将立即被额外的管道破坏。同上 #8 与 #6。有点令人沮丧,但我完全同意这一点。

剩下的问题:

  • 为什么案例#3 没有遭受与#4 相同的命运? $rhs应该保存嵌套数组(,("a", "a"))但它的外层正在展开......某处......
  • #9-10 中的各种分组运算符是怎么回事?为什么他们的行为如此不规律,为什么需要他们?
  • 为什么 #10 的失败不会像 #4 那样优雅地降级?
0 投票
8 回答
292 浏览

c++ - 会员访问差异

有人可以告诉我(*ptr).field和之间有什么不同ptr->field吗?我知道它以某种方式连接到静态和动态链接,但我不知道它是什么。有人可以告诉我不同​​之处并举个例子吗?

编辑:如果我有这个代码:

天呐!

0 投票
14 回答
3845 浏览

c++ - 在 C++ 中计算 && (and) 运算符的哪一侧(左侧或右侧)

和 && 运算符评估哪个顺序

例如下面的代码

抛出了一个异常,即 alpha 正在被使用而没有被启动。我认为 && 左边的表达式总是会首先启动 alpha 的值,但似乎我可能错了

任何的想法?

谢谢

0 投票
6 回答
11535 浏览

java - Java 运算符优先级准则

误解Java 运算符优先级是常见问题和细微错误的根源。我很感兴趣地了解到,甚至Java 语言规范都说:“建议代码不要严重依赖该规范。” JLS §15.7 更喜欢清晰而不是聪明,这方面有什么有用的指导方针吗?

以下是有关该主题的一些资源:

欢迎补充或更正。

0 投票
4 回答
1711 浏览

c# - c#泛型方法重载与抽象访问者模式不一致

尝试访问者模式和通用方法,我在 C#.NET 中发现了一种差异。AFAIK C# 编译器更喜欢显式重载而不是泛​​型方法,因此以下代码:

产生的输出是(如预期的那样):

但是,此访问者模式实现不允许交换访问者类。引入抽象类 VisitorBase 并将调用转发给重载会产生 smth。出乎我的意料......

现在输出是:

泛型方法只喜欢泛型方法吗?为什么不调用显式重载?

0 投票
1 回答
13979 浏览

java - Java中参数保证的执行顺序?

给定以下函数调用C

barFunc和的执行顺序BazFunc没有指定,所以barFunc()可以在 之前或bazFunc()之前bazFunc()调用。barFunc()C

是否Java指定函数参数表达式的执行顺序或类似C的未指定?

0 投票
3 回答
5305 浏览

sql - SQL UPDATE 求值顺序

以下查询中的评估顺序是什么:

也就是说,将"tbl"."p"设置为qor q + 1? 这里的评估顺序是否受 SQL 标准的约束?

谢谢。

更新

在考虑了Migs 的回答后,我对我能找到的所有数据库进行了一些测试。虽然我不知道标准是怎么说的,但实现会有所不同。

给定

我发现 和 的值"p""q"

更新 2

Firebird 2.5 改变了它的行为以匹配我测试过的大多数其他 SQL 引擎,只留下 MySQL。相关的发行说明条目“SET 子句中的逻辑更改”强烈建议根据 SQL 规范大多数行为是正确的

我已经窃听 MySQL 来评论这种行为(错误号52861),因为它们似乎是异常值。

更新 3

上述错误已于今天 (2010-05-19) 关闭,并且将更新文档以在UPDATE描述和与标准 SQL 的差异部分中明确说明此行为。

布拉沃,MySQL。

0 投票
4 回答
284 浏览

c++ - 为什么 string::append 操作行为异常?

看下面的简单代码:

你期望输出是什么?

你会像我一样期望它是:

错误的!它是:

即第一个字符串为空。

前缀增量运算符的接缝对迭代器有问题。还是我错过了什么?

0 投票
6 回答
70384 浏览

java - 在 Java 中,布尔“操作顺序”是什么?

让我们以一个简单的对象为例Cat。我想确定“not null”cat是橙色还是灰色。

我相信 AND 首先出现,然后是 OR。不过我有点模糊,所以这是我的问题:

  1. 有人可以指导我完成此声明,以便我确定我知道会发生什么吗?

  2. 另外,如果我添加括号会发生什么;这会改变操作的顺序吗?

  3. 我的操作顺序会因语言而异吗?