它是在所有语言标准以下,得到的值3?

Print(6 - 2 - 1)

换句话说,是否有将评估任何语言 - 前 “2 1”? “6 - 2”

我想做这样的假设,这样我可以退出本能地插入括号((6 - 2) - 1)。这让我在LISP噩梦的风险。

由于

有帮助吗?

解决方案

通常,当多个操作具有相同的优先级它们从左至右类似于算术评价。我不想说所有的语言,因为我没有做过所有的调查,但它是有道理的,它应该是这样的。还是我会仔细阅读文档的任何新的语言,我要去尝试。

其他提示

在Smalltalk中,没有任何数学的优先级。

数学运算符只是方法Mamés酒店,因此优先被视为任何其它方法名称。你的榜样将评估预期,但例如1 + 2 * 3产量9而非7

只是为了提一个反例的缘故,如果没有记错APL是严格右结合的如此6-2-1将评估为5。我希望有人用APL的安装或其decendants之一,将会使我们权利,如果我错了。

此致

这是我所知道的将评估在预期的顺序,从左至右每一种语言。不过,我建议你只是做在任何一种语言,你工作中来验证这个快速测试。

你想要的是左到右联(而不是从右到左结合)。

它不能保证,但大多数语言是从左向右关联算术。

据我所知,减法总是让左结合(原因很明显 - 它你所期望的)。有可能是语言的明确目的不是,但它是一个安全的假设,即算术几乎总是工作你期望的方式。

停止担忧,并信任该操作者的优先级。极少数语言具有比标准的数学运算符优先级不同。使用括号的地方是当它是并不清楚的优先级规则。用标准数学运算符,它是显而易见的。

唯一的语系,我知道的有优先权,但不遵循标准的数学规则是APL的家庭,特别是K个语言。这个家庭有很多数学和发明的运营商,他们都严格评估从右到左。但是,除非你要处理这些类型的语言,不用担心。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top