gpt4 book ai didi

Ruby 嵌套赋值和无括号方法调用

转载 作者:数据小太阳 更新时间:2023-10-29 08:08:36 31 4
gpt4 key购买 nike

我对 Ruby 中的语法敏感性感到惊讶。这些都有效:

 var = method arg
var2 = (var1 = method arg)
method2(method1 arg)

但这不是:

method2(var = method1 arg)

相反,我必须这样做,并带有额外的括号:

method2(var = method1(arg))

.. 或者这个,我发现它比失败的版本更模棱两可:

method2 var = method1(arg)

我认为这要么是一个特定的设计决策,要么是另一个设计决策的副作用,如果您能深入了解这些决策,我将不胜感激。

请注意,我不是在寻找关于风格的任何意见;我不是在问什么看起来更好,或者你认为什么应该或不应该工作。我什至会规定,如果完全拆分为两个单独的语句,这个特定的结构会更清晰。我只是想知道 Ruby 以这种方式工作的真正原因,来自任何可能拥有该背景信息的人。

最佳答案

I assume that this is either a specific design decision or the side effect of another one, and would appreciate any insight into those decisions.

Ruby 的语法复杂得离谱。由于大多数 Ruby 实现都使用像 Bison 这样的解析器生成器,但实际上它的功能不足以解析如此复杂得离谱的语言,the parsers tend to be even more ridiculously complex .它更有可能是两个奇怪的解析角落案例以比任何有意识的设计决策更奇怪的方式相互作用。

关于Ruby 嵌套赋值和无括号方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25676315/

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