【发布时间】:2016-02-10 03:47:48
【问题描述】:
我在 Ruby on Rails 的代码中遇到了一些错误,但我不知道是不是因为它没有缩进。 Ruby 代码可以在没有缩进的情况下工作吗?
【问题讨论】:
标签: ruby coding-style indentation
我在 Ruby on Rails 的代码中遇到了一些错误,但我不知道是不是因为它没有缩进。 Ruby 代码可以在没有缩进的情况下工作吗?
【问题讨论】:
标签: ruby coding-style indentation
对于严格使用 Ruby 的项目,缩进无关紧要。 Here's a SO answer to the same question that has a good example of functioning Ruby code with poor indentation。如果您一般对适当的缩进样式感到好奇,Github's Ruby style guide 将是您的一个很好的参考。
由于您特别提到了 Rails,我想您的模板代码可能会遇到错误。如果您使用的是 slim 或jade 之类的模板(您的视图将有.slim 或.jade 或.haml),缩进可能很重要,缺少缩进会导致错误。例如,
h1 Example code
- @foos.each do |foo|
p = foo
是有效的苗条代码,但是
h1 Example code
- @foos.each do |foo|
p = foo
会产生语法错误。
【讨论】:
正如@sawa 所说,缩进不是强制性的但这是一种很好的做法,因为它可以让您的代码更容易阅读(对于人类而言),这意味着更容易发现任何错误。根据Eloquent Ruby 一书,一个明智的做法是使用每行两个空格 进行缩进,因为这显然是一个缩进,但不会占用太多的行空间.本书还建议不要使用 tabs,因为 tab 没有通用长度,因此它们的长度可能会有很大差异。看看这一切的实际效果...
没有缩进的代码:
class Human
def laugh
puts "laugh"
end
def cry
puts "cry"
end
代码不太正确,但不是很明显错误在哪里。
带有缩进和合理间距的代码:
class Human
def laugh
puts "laugh"
end
def cry
puts "cry"
end
在这里更容易看到应该与开课对齐的end 丢失了。简而言之,是的,缩进你的代码并使用合理的间距(例如方法之间的空间)。它将帮助您和任何使用或阅读您的代码的人。
【讨论】:
缩进不像在 python 中那样严格。如果缩进关闭,您的代码应该可以正常工作,但其他开发人员可能无法维护或阅读。
【讨论】:
__END__)。