gpt4 book ai didi

ruby - 方法调用如何与运算符优先级交互?

转载 作者:太空宇宙 更新时间:2023-11-03 17:42:12 24 4
gpt4 key购买 nike

我很好奇方法调用与运算符优先级的关系。在 irb 中,我看到了这个:

var = puts(5)
5
=> nil
var
=> nil

这意味着对 puts 的调用比赋值运算符具有更高的优先级,因为 nil(puts(5) 的返回值)被分配给 var,而不是方法调用本身。因为 nil 被赋值给 var(正如我们在第 4 行看到的那样),我猜想 puts(5) 在赋值运算符之前被调用。

this Stackoverflow 线程,每个人都同意方法调用的优先级低于每个运算符。

但是this网站列出了 .作为方法调用的运算符,并表示它是优先级最高的运算符。

如果第二个网站确实准确,我不确定是否有隐含的 .当您在 main 上调用方法时运算符(因此关于 . 作为高优先级运算符是否足以解释上面的 irb session )。

一般来说,我很好奇 Ruby 在遇到一行代码时的处理顺序,所以如果您知道任何资源以易于理解的方式解释它,我将有兴趣阅读它们。

编辑:感谢到目前为止的回答。也许我对我的基本问题不够清楚,这些问题是理论上的而不是实际的(所以可以说是“过度思考”,取决于你想的程度):

  • 是。技术上是运营商,还是技术上不是运营商?
  • 有没有。每次调用方法时都在幕后某个地方?
  • 运算符是 Ruby 决定以何种顺序评估一行代码的基本方式,还是除了运算符及其优先级/关联性/元数之外还有其他因素?

谢谢

最佳答案

你想多了。您的表达基本上是这样的:x = something。因此,必须首先评估右侧,然后才能完成赋值。

关于ruby - 方法调用如何与运算符优先级交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57891862/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com