Ruby有一个特殊的存储空间来返回值吗?

pro*_*eek 2 ruby return-value

以下Ruby代码

def a(b,c) b+c end 
Run Code Online (Sandbox Code Playgroud)

与Python相同如下

def a(b,c): return b+c
Run Code Online (Sandbox Code Playgroud)

看起来ruby具有存储最终评估结果的特殊存储(堆栈或其他东西),并在调用函数时返回值.

  • 如果是这样,堆栈的名称是什么,以及如何获得该堆栈?
  • 如果没有,Ruby代码如何在不返回内容的情况下工作?

Jac*_*ack 5

这不是那么神奇,Ruby只返回最后操作返回的值.

它是在解析级别实现的同义词糖:一个隐式计算内容的语句返回自己而没有任何关键字.

为了澄清一点,你可以想象两个片段的抽象语法树:它们不会有所不同.