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
。
这可能不是您想要的,也是您期望的某些作业不会发生的原因。
我有一个 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
。
这可能不是您想要的,也是您期望的某些作业不会发生的原因。