0

不确定我的问题是否正确,但总的来说,我会执行以下操作:

给定如下代码片段:

[{ <some events>, "close"}, { <some other events>, "close"}].each do |events|
    it "should handle events" do
        ...
    end
    ...
end

我想增加事件的数组。假设有 2 种关闭方式:("close"相同)和"stop". 这意味着,我想编写一些代码来检查 4 个序列:[{<some events>, "close"}, {<some other events>, "close"}, {<some events>, "stop"}, {<some other events>, "stop"}].

什么是正确的(在 Ruby 中风格良好的)编码方式?

更新<some events>and<some other events>是字符串序列(这只是为了澄清)。

更新 N2: stop在更close一般的情况下,也可以出现在序列的中间。

更新 N3:可能只是有一个最终序列do会更方便。我在这里可能错了。

更新 N4:示例(只是为了说明一切):

初始消息:“open”、“click_btn1”、“click_btn2”、“open”、“click_btn2”、“click_btn3”、

所需结果:“打开”、“click_btn1”、“click_btn2”、“关闭”“打开”、“click_btn1”、“click_btn2”、“关闭”“打开”、“click_btn2”、“click_btn3”、“停止”“打开”、“click_btn2”、“click_btn3”、“停止”

4

1 回答 1

2

只是有嵌套的迭代。

[some_events, some_other_events].each do |event|
  ["close", "stop"].each do |close_or_stop|
    ...
  end
end

或者可能

[some_events, some_other_events].product(
["close", "stop"]) do |event, close_or_stop|
  ...
end
于 2012-11-01T15:16:22.767 回答