这个Ruby语法是什么?

ran*_*its 8 ruby

我最近遇到了这样的代码:

 next {
          'foo'         => bar,
          'foobar'      => anotherbar,
      }
Run Code Online (Sandbox Code Playgroud)

起初它看起来像一个简单的哈希,但下一步没有任务.接下来在这种情况下看起来像一个保留的Ruby关键字 这段代码有什么作用?

cri*_*s.h 14

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"]
Run Code Online (Sandbox Code Playgroud)

来自http://ruby-doc.org/docs/keywords/1.9/