如何在数组中创建定时间隔循环?

时间:2015-03-20 01:43:48

标签: ruby arrays loops intervals

我有一个函数search_subjects,其结果存储在数组subjects中。我还有一个设置间隔repeat_every(secs)的功能。我尝试使用subjects间隔遍历存储在repeat every数组中的变量,以便使用定时变量搜索数组。

subjects = []
def search_subject
  subjects.each do |e|
    {e < e.length}
    repeat_every(10)
    client.search_through_subject(e)
  end
end

我得到syntax error, unexpected '}', expecting => 另一个syntax error, unexpected keyword_end, expecting end-of-input。你能告诉我我做错了吗?

1 个答案:

答案 0 :(得分:0)

第一个错误来自这一行:

{e < e.length}

大括号{}是用于创建Hash或块的文字符号,它需要这样的内容:

{ :key => :value }

目前尚不清楚您要尝试做什么,但在使用e时,您无需检查each()是否超出范围。你可以省略这一行。

第二个错误来自此处缺少的do关键字:

repeat_every(10)

假设您要将块传递给repeat_every(),您可以执行以下任何操作:

repeat_every(10) do
    client.search_through_subject(e)
end

repeat_every(10) { client.search_through_subject(e) }

当您的块只有一行时,通常首选第二个。

另一个警告的词。在您发布的代码中,变量subjectsclients可能未在您的方法中定义,除非您将它们作为参数传递。