首页 > 解决方案 > Groovy Power Operator (**) 是否在关联性中被破坏?

问题描述

在 Groovy 3.0 中(Groovy 版本:3.0.0-rc-1 JVM:11.0.2)

println 3**3**3
println 3.0**3.0**3.0

19683
19683

在终端的 Python (Python 3.5.2) 中,我得到

>>> 3**3**3
7625597484987
>>> (3**3)**3
19683

官方网站没有给出任何指示。

到目前为止,Groovy 中的 ** 是否已损坏?


编辑

stackoverflowmath.stackexchange中的答案清楚地表明,数学惯例是求幂是右结合的。

缺陷被定义为软件产品中不满足软件需求(如需求规范中所述)或最终用户期望(可能未指定但合理)的条件。

由于这种合理的期望以未记录的方式被违反,这不被认为是一个错误吗?

标签: groovyexponentiation

解决方案


不,它没有坏

与所有其他运算符一样,它只是具有从左到右的关联性

在 python**中具有从右到左的关联性,因此也没有被破坏

他们只是有不同的规则


推荐阅读