我最近遇到了这样的代码:
next {
'foo' => bar,
'foobar' => anotherbar,
}
起初它看起来像一个简单的哈希,但没有下一个任务。接下来在这种情况下看起来像一个保留的Ruby关键字这段代码做了什么?
答案 0 :(得分:14)
next类似于c族语言中的continue关键字,除了在ruby中它使迭代器移动到下一次迭代。由于块总是具有某种返回值,因此您可以选择将一个作为参数传递给下一个。
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"]