问题标签 [associativity]
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.
php - 代码块的增量运算符和赋值运算符的精度和关联性是什么
代码块的增量运算符和赋值运算符的精度和关联性是什么
根据它输出的执行
但我无法理解数组$a
索引 1 如何保存数组$b
索引 2 的值。任何人都可以解释执行是如何发生的场景吗?
c - a>b>c 当每个都有数值时的评估
我遇到了一个竞争性的 C 问题,内容如下:
找到以下输出:
编译器响应 0。
我的解释是,这也许是从右到左评估的副作用。我的猜测是,首先b>c
被评估(假设它首先被推入堆栈,我在这里很困惑,因为我知道 > 的从左到右的关联性),它的评估结果为真。这个真实变量的值,它是一个大于 0 的数字(我们不知道),对其a > that_value
进行评估,产生结果。但是我可能错了!
关于如何评估输出的任何指针/见解都会很有用。谢谢。
编辑:我在一个非常旧的编译器中进行了测试,它给出了 1,这是我的错误,纠正了它。
swift - 为什么 Nil 合并运算符是右关联的?
它不应该是左关联吗?
我认为
let a = b ?? c ?? d
分组
let a = (b ?? c) ?? d
不像
let a = b ?? (c ?? d)
但它被声明为右结合体。我是否误解或错过了什么?
postgresql - 内连接sql的结合性和交换性
假设我有这个模式。
我知道内部连接应该是关联的和可交换的,但我无法真正理解为什么。
给定查询:
我认为这应该返回null
,因为 Sailors 和 Boats 没有共同的领域,而:
应该返回水手的名字和他们保留的船的名字。
请告诉我为什么内部连接应该是可交换的和关联的。
谢谢!
c - 关于 ++ 运算符关联性的歧义
“C How to Program 6th edition - page 119”说 ++ 运算符的结合性是“从右到左”。我想知道这是什么意思,因为 ++ 是一元运算符,所以在什么情况下我可能会遇到一元运算符的关联性?能给我举个例子?
另一方面,一些网络资源根据其状态(前缀或后缀)为 ++ 运算符提供不同的关联性。虽然这本书为后缀和前缀一起提供了“从右到左”的关联性,但哪一个是正确的?
如果你给我一个例子,我会非常感谢?关联性也是如此。
谢谢并恭祝安康
javascript - JavaScript 中 reduceRight 的原生实现是错误的
f
对于array 元素的关联操作a
,以下关系应该成立:a.reduce(f)
应该等价于a.reduceRight(f)
。
事实上,它确实适用于关联和交换的操作。例如:
但是,它不适用于关联但不可交换的操作。例如:
我们需要翻转 for 的参数f
以reduceRight
使它们等效:
这让我相信原生实现reduceRight
是错误的。
我认为该reduceRight
功能应实现如下:
由于result
表示前一个值(右侧值),因此将其作为函数的第二个参数是有意义的f
。当前值表示左侧值。因此,将当前值作为函数的第一个参数是有意义的f
。这样,即使对于非交换关联运算,上述关系也成立。
所以,我的问题是:
reduceRight
以我的方式实施不是更有意义吗?- 为什么本机
reduceRight
没有按照我的方式实现?
bnf - Backus Naur 形式关联性
这是为 Exponentiation PowExp 实现右关联性的正确方法吗?所以 2^3^4 实际上是 (2^(3^4))
php - How is "$foo = 5 && $bar = 15" evaluated, and why is it not a error?
Let's say we got a simple code like this:
so I assume it works like:
but in my opinion it should be:
- evaluation form left to right [$foo want 5 but && is higher]
- && got the highest priority [so && takes 5 and $bar]
- 5 == TRUE; $bar == Undefined [so it's NULL == FALSE]
- = got the right associativity [waits for evaluation of (5 && $bar)]
Please explain it in easiest way (on some other examples) to poor man like me. Regards.
java - 为什么字符串加法会给出不同的答案?
这会打印出来12
,但顺序不同
它打印出来57
。为什么是这样?