Ivo*_*rie 1 ruby methods operator-precedence
我很好奇方法调用与运算符优先级有何关系。在 irb 中,我看到了这个:
var = puts(5)
5
=> nil
var
=> nil
Run Code Online (Sandbox Code Playgroud)
这意味着对 put 的调用比赋值运算符具有更高的优先级,因为 nil (puts(5) 的返回值)被分配给 var,而不是方法调用本身。因为 nil 被赋值给 var (正如我们在第 4 行看到的),我猜想 put(5) 在赋值运算符之前被调用。
在这个Stackoverflow 线程中,每个人都同意方法调用的优先级低于每个运算符。
然而,该网站列出了 . 作为方法调用的运算符,并表示它是最高优先级的运算符。
如果第二个网站确实准确,我不确定是否存在隐含的 . 当您在 main 上调用方法时,请使用 . 运算符(因此关于 . 作为高优先级运算符是否足以解释上面的 irb 会话)。
一般来说,我对 Ruby 在遇到一行代码时执行操作的顺序感到好奇,因此,如果您知道任何以可访问的方式解释这一点的资源,我将有兴趣阅读它们。
编辑:感谢到目前为止的回答。也许我对我的基本问题不够清楚,这些问题是理论上的而不是实际的(所以可以说是“过度思考”,取决于你想思考的程度):
谢谢
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |