我最近遇到了如下代码:
next {
'foo' => bar,
'foobar' => anotherbar,
}
起初,它看起来像一个简单的哈希,但是没有分配给下一个。在这种情况下,下一个看起来像保留的Ruby关键字。该代码的作用是什么?
最佳答案
next与c语言族中的continue关键字相似,除了在ruby中,它使迭代器移至下一个迭代。由于块始终具有某种返回值,因此您可以选择将其中一个作为参数传递给next。
next通常用于诸如遍历文件列表并根据文件名执行(或不执行)操作的情况。
next可以取一个值,该值将是该块当前迭代返回的值。
sizes = [0,1,2,3,4].map do |n|
next("big") if n > 2
puts "Small number detected!"
"small"
end
p sizes
Output:
Small number detected!
Small number detected!
Small number detected!
["small", "small", "small", "big", "big"]
来自http://ruby-doc.org/docs/keywords/1.9/
关于ruby - Ruby的语法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3286843/