问题标签 [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.
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
知道一定发生了什么吗?提前致谢!
arrays - PowerShell 的 -f 运算符的 RHS *究竟*如何工作?
上次我对PowerShell急切展开集合的方式感到困惑时,Keith 总结了它的启发式如下:
将结果(数组)放在分组表达式(或子表达式,例如 $())中使其再次符合展开的条件。
我已经把这个建议铭记在心,但仍然发现自己无法解释一些深奥的东西。特别是, Format 运算符似乎不遵守规则。
应用我们在上一个问题中看到的相同模式,很明显为什么像 #1 和 #5 这样的情况表现不同:管道运算符向脚本引擎发出信号以展开另一个级别,而赋值运算符没有。换句话说,位于两个 | 之间的所有内容都被视为一个分组表达式,就好像它在 () 中一样。
出于同样的原因,案例#7 与#5 相比没有任何改进。任何添加额外Wrap的尝试都将立即被额外的管道破坏。同上 #8 与 #6。有点令人沮丧,但我完全同意这一点。
剩下的问题:
- 为什么案例#3 没有遭受与#4 相同的命运? $rhs应该保存嵌套数组(,("a", "a"))但它的外层正在展开......某处......
- #9-10 中的各种分组运算符是怎么回事?为什么他们的行为如此不规律,为什么需要他们?
- 为什么 #10 的失败不会像 #4 那样优雅地降级?
c++ - 会员访问差异
有人可以告诉我(*ptr).field
和之间有什么不同ptr->field
吗?我知道它以某种方式连接到静态和动态链接,但我不知道它是什么。有人可以告诉我不同之处并举个例子吗?
编辑:如果我有这个代码:
天呐!
c++ - 在 C++ 中计算 && (and) 运算符的哪一侧(左侧或右侧)
和 && 运算符评估哪个顺序
例如下面的代码
抛出了一个异常,即 alpha 正在被使用而没有被启动。我认为 && 左边的表达式总是会首先启动 alpha 的值,但似乎我可能错了
任何的想法?
谢谢
c# - c#泛型方法重载与抽象访问者模式不一致
尝试访问者模式和通用方法,我在 C#.NET 中发现了一种差异。AFAIK C# 编译器更喜欢显式重载而不是泛型方法,因此以下代码:
产生的输出是(如预期的那样):
但是,此访问者模式实现不允许交换访问者类。引入抽象类 VisitorBase 并将调用转发给重载会产生 smth。出乎我的意料......
现在输出是:
泛型方法只喜欢泛型方法吗?为什么不调用显式重载?
java - Java中参数保证的执行顺序?
给定以下函数调用C
:
barFunc
和的执行顺序BazFunc
没有指定,所以barFunc()
可以在 之前或bazFunc()
之前bazFunc()
调用。barFunc()
C
是否Java
指定函数参数表达式的执行顺序或类似C
的未指定?
sql - SQL UPDATE 求值顺序
以下查询中的评估顺序是什么:
也就是说,将"tbl"."p"
设置为q
or q + 1
? 这里的评估顺序是否受 SQL 标准的约束?
谢谢。
更新
在考虑了Migs 的回答后,我对我能找到的所有数据库进行了一些测试。虽然我不知道标准是怎么说的,但实现会有所不同。
给定
我发现 和 的值"p"
是"q"
:
更新 2
Firebird 2.5 改变了它的行为以匹配我测试过的大多数其他 SQL 引擎,只留下 MySQL。相关的发行说明条目“SET 子句中的逻辑更改”强烈建议根据 SQL 规范大多数行为是正确的。
我已经窃听 MySQL 来评论这种行为(错误号52861),因为它们似乎是异常值。
更新 3
上述错误已于今天 (2010-05-19) 关闭,并且将更新文档以在UPDATE描述和与标准 SQL 的差异部分中明确说明此行为。
布拉沃,MySQL。
c++ - 为什么 string::append 操作行为异常?
看下面的简单代码:
你期望输出是什么?
你会像我一样期望它是:
错误的!它是:
即第一个字符串为空。
前缀增量运算符的接缝对迭代器有问题。还是我错过了什么?
java - 在 Java 中,布尔“操作顺序”是什么?
让我们以一个简单的对象为例Cat
。我想确定“not null”cat
是橙色还是灰色。
我相信 AND 首先出现,然后是 OR。不过我有点模糊,所以这是我的问题:
有人可以指导我完成此声明,以便我确定我知道会发生什么吗?
另外,如果我添加括号会发生什么;这会改变操作的顺序吗?
我的操作顺序会因语言而异吗?