我需要在Ruby中缩进我的代码吗?

Kev*_*ica 14 ruby

你会认为这是一个简单的问题,但我无法在任何地方找到答案.> _ <

如果我的代码缩进不正确,Ruby会抛出语法错误吗?例如,像这样的代码工作?

if str.blank?
  str = "Hello World"
no_input = true
  end
Run Code Online (Sandbox Code Playgroud)

显然,这是糟糕的风格,我应该正确缩进,不管.我想知道在调试会话期间是否可以将其排除为导致错误的原因.

dep*_*epa 16

是的,它会起作用.Ruby只查找换行符.

但是由于代码可读性也非常重要,我会说如果只是为了那个原因你应该照顾空白.


Tod*_*obs 11

缩进(通常)是一种文体选择

在Ruby中,缩进本身并不相关,尽管换行符和其他空格的位置可能会导致解析器模糊不清或导致它将某些事物视为单独的表达式,而不是它们的意思.这里 - 文档和多行字符串也是缩进重要的区域.

在所有情况下,真正的问题是"解析器看到了什么?" 在您的示例中,它应该在功能上等同于正确缩进的代码.但是,如果你真的想知道底层发生了什么,请看看Ruby的Ripper模块,看看你的代码是如何被实际解析的.