Ruby for in循环错误与{}块定界符

前端之家收集整理的这篇文章主要介绍了Ruby for in循环错误与{}块定界符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Ruby语言中,以下工作在irb中
for fruit in ['apple','banana','cherry','date'] do
    puts fruit 
end

但是这个没有

# error
for fruit in ['apple','date'] { puts fruit }

请注意参考以下块分隔符不要错误

5.times do |i|
    puts "hello "+i.to_s
end

5.times { |i| puts "hello "+i.to_s }

编辑:我想我正在观察的是与…的结果不一致的替代{}有人可以解释为什么或请指出我的错误

解决方法

以下来自 this的帖子解释了“不一致”(强调我的):

end is a generic keyword that ends a context (conditionals,class and module definitions,method definitions,loops and exception-catching [statements]). Curly braces are special Syntax for defining blocks or Hashes.

for循环是控制结构 – 而不是具有块参数的方法 – 因此它们必须用end关键字关闭.诸如Enumerable#times和Enumerable#的方法每个都有一个块参数,可以用{}或者do … end语法来定义.

猜你在找的Ruby相关文章