【发布时间】:2014-08-03 12:45:39
【问题描述】:
我对 Ruby(来自 C#)相当陌生,所以我想知道为什么这是有效的:
x = 2
x #why is this valid?
ruby 是否将其解释为 x.inspect 或内部的东西?
【问题讨论】:
-
裸变量最常见的用法可能是作为方法的最后一行,以便方法返回该变量的值。
标签: ruby
我对 Ruby(来自 C#)相当陌生,所以我想知道为什么这是有效的:
x = 2
x #why is this valid?
ruby 是否将其解释为 x.inspect 或内部的东西?
【问题讨论】:
标签: ruby
为什么变量是有效的语句?
因为它不是一个语句,它是一个表达式。 Ruby 中没有语句,一切都是表达式。
ruby 是否将其解释为
x.inspect或内部?
没有。 x 被解释为x,仅此而已。
在 REPL 中,如 IRb 或 Pry,REPL 可能会或可能不会调用对象上的某些方法,这是评估 x 的结果,以显示对象的一些人类可读的文本表示,但那是a) REPL 的一个特性,而不是 Ruby,并且 b) 适用于所有表达式,而不仅仅是局部变量解引用。
【讨论】:
我相信 Ruby 遵循 expressions return their own value,尤其是 some expressions are self-evaluating 的 Lisp。因此,return 在 Ruby 中实际上是 unnecessary。
【讨论】:
这是有效的,因为x 是一个定义的变量,即它引用一个对象。它不会将其解释为 x.inspect 或其他任何内容。 x 是x(实际上是2)。
【讨论】: