我是Ruby的新手(来自C#),所以我想知道为什么这是有效的:
x = 2
x #why is this valid?
ruby是否将其解释为x.inspect或内部的东西?
答案 0 :(得分:1)
我相信Ruby遵循Lisp expressions return their own value,特别是some expressions are self-evaluating。因此,return
实际上是Ruby中的unnecessary。
答案 1 :(得分:1)
为什么变量是有效的声明?
因为它不是一个陈述,所以它是一个表达。 Ruby中没有语句,一切都是表达式。
ruby是否将其解释为
x.inspect
或其他内部内容?
没有。 x
被解释为x
,没有别的。
在REPL中,如IRb或Pry,REPL可能会也可能不会调用对象上的某些方法,这些方法是评估x
的结果,以便显示对象的一些人类可读的文本表示,但是这是a)REPL的一个特性,而不是Ruby和b)适用于所有表达式,而不仅仅是局部变量解引用。
答案 2 :(得分:0)
它是有效的,因为x
是一个已定义的变量,即它引用一个对象。它不会将其解释为x.inspect
或其他任何内容。 x
为x
(实际为2
)。