代码之家  ›  专栏  ›  技术社区  ›  Alphaneo

ruby中的操作优先级

  •  0
  • Alphaneo  · 技术社区  · 17 年前

    我试过推杆 5-8.abs 返回的 -3 ,然后我试着 (5-8).abs 返回的 3 .

    当我尝试推杆时到底发生了什么 5-8.abs ,好像 abs 被忽略了吗?

    3 回复  |  直到 17 年前
        1
  •  3
  •   I82Much    17 年前

    5-8.abs看起来像你做的5-(8.abs)=5-8=-3。

    此外,任何时间优先级都是最不确定的,显式括号有助于提高优先级。

        2
  •  9
  •   Sarah Mei    17 年前

    .abs ,在减号运算符之前求值。

    5-8.abs # => equivalent to 5-(8.abs)
    

    这样想吧——空白在Ruby中并不重要。如果你看到这个,你会期望发生什么?

    5 - 8.abs
    

    这是你的参考资料 Ruby precedence rules .

        3
  •  4
  •   Peter    17 年前

    8.abs 在这种情况下)始终具有比运算符更高的优先级( - 在这种情况下)。

    所以 5-8.abs 5-(8.abs) = 5 - 8 = -3

    推荐文章