Ruby returns 早于循环

Ruby returns early from loop

我有一个 class,使用一种方法:

class ScreenerProbe 
  def initialize
    @body = {}
  end

  def import_simple_matrix(questions, answers)    
    @body['aliases'] = answers.map { |pair| 
      return { val: pair["text"], text: pair["value"] }
    }
    
    # this code doesn't seem to run
    questions.each.with_index do |text, index|
      @body["questions"][index + 1] = {
        "title" => text,
        "type" => 'default',
      }
    end
end

问题是某些代码似乎没有 运行,尽管我希望如此。

ruby 2.6.6p146(2020-03-31 修订版 67876)[x86_64-darwin20]

从循环内部调用 return 时,它不仅会“退出”循环,您还会从外部方法 return 调用 import_simple_matrix

这可能不是您想要的,也是您期望的某些作业不会发生的原因。