我最近遇到了如下代码:

 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/

10-14 01:42