我在Ruby on Rails的代码中遇到了一些错误,但我不知道是不是因为它没有缩进。 Ruby代码是否可以在没有缩进的情况下工作?
答案 0 :(得分:2)
对于一个严格遵循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,我想您可能会遇到模板代码错误。如果您使用的是瘦身或玉石等模板(您的观看次数为clients = Client.includes(:address).limit(10)
clients.each do |client|
puts client.address.postcode
end
或.slim
或.jade
),则缩进可能很重要,缺少缩进可能会导致错误。例如,
.haml
有效的苗条代码,但
h1 Example code
- @foos.each do |foo|
p = foo
会生成语法错误。
答案 1 :(得分:2)
正如@sawa所说,缩进不是强制性的而是这是一种很好的做法,因为它允许您的代码更易于阅读(对于人类而言),这意味着它更容易捕获任何错误。根据书籍Eloquent Ruby,一个明智的做法是使用 每行两个空格 进行缩进,因为这显然是一个缩进,但没有占用太多空间这条线。本书还建议不要使用标签,因为标签没有通用长度,因此它们的长度可能会有很大差异。要看到这一切......
没有缩进的代码:
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
缺失。简而言之,是缩进代码并使用合理的间距(例如方法之间的空格)。它将帮助您和任何使用或阅读您的代码的人。
答案 2 :(得分:1)
缩进不像python中那样严格。如果缩进没有关闭,您的代码应该可以正常工作,但可能无法维护或可供其他开发人员阅读。