【问题标题】:Ruby - Why is a variable a valid statement?Ruby - 为什么变量是有效的语句?
【发布时间】:2014-08-03 12:45:39
【问题描述】:

我对 Ruby(来自 C#)相当陌生,所以我想知道为什么这是有效的:

x = 2
x #why is this valid?

ruby 是否将其解释为 x.inspect 或内部的东西?

【问题讨论】:

  • 裸变量最常见的用法可能是作为方法的最后一行,以便方法返回该变量的值。

标签: ruby


【解决方案1】:

为什么变量是有效的语句?

因为它不是一个语句,它是一个表达式。 Ruby 中没有语句,一切都是表达式。

ruby 是否将其解释为 x.inspect 或内部?

没有。 x 被解释为x,仅此而已。

在 REPL 中,如 IRb 或 Pry,REPL 可能会或可能不会调用对象上的某些方法,这是评估 x 的结果,以显示对象的一些人类可读的文本表示,但那是a) REPL 的一个特性,而不是 Ruby,并且 b) 适用于所有表达式,而不仅仅是局部变量解引用。

【讨论】:

    【解决方案2】:

    我相信 Ruby 遵循 expressions return their own value,尤其是 some expressions are self-evaluating 的 Lisp。因此,return 在 Ruby 中实际上是 unnecessary。

    【讨论】:

    • 或多或少是我在寻找的东西。这个概念似乎很陌生,但我想这种行为也适用于其他语言。好的链接,顺便说一句。
    【解决方案3】:

    这是有效的,因为x 是一个定义的变量,即它引用一个对象。它不会将其解释为 x.inspect 或其他任何内容。 x 是x(实际上是2)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-15
      • 2019-12-11
      相关资源
      最近更新 更多