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

Ruby 如何在数组中创建定时间隔循环?,ruby,arrays,loops,intervals,Ruby,Arrays,Loops,Intervals,我有一个功能search\u subjects,其结果存储在数组subjects中。我还有一个设置间隔的功能repeat\u every(secs)。我试图通过使用repeat every间隔来循环存储在subjects数组中的变量,以便它使用定时变量搜索数组 subjects = [] def search_subject subjects.each do |e| {e < e.length} repeat_every(10) client.search_th

我有一个功能
search\u subjects
,其结果存储在数组
subjects
中。我还有一个设置间隔的功能
repeat\u every(secs)
。我试图通过使用
repeat every
间隔来循环存储在
subjects
数组中的变量,以便它使用定时变量搜索数组

subjects = []
def search_subject
  subjects.each do |e|
    {e < e.length}
    repeat_every(10)
    client.search_through_subject(e)
  end
end
subjects=[]
def search_主题
受试者。每个人都有|
{e
我得到一个
语法错误,意外'}',预期=>

还有另一个
语法错误,意外的关键字\u end,预期输入结束
。你能告诉我我做错了什么吗?

第一个错误来自这一行:

{e

花括号
{}
是用于创建
散列
或块的文字表示法,它期望如下所示:

{:key=>:value}

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

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

每(10)次重复一次

假设要将块传递给
repeat\u every()
,则可以执行以下任一操作:

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

当您的区块只有一条线时,通常首选第二条


另一个警告。在您发布的代码中,变量
subjects
clients
可能不会在您的方法中定义,除非您将它们作为参数传入。

啊,好的,我有点明白您的意思。。。为了回答您的困惑,我尝试循环遍历主题数组,不是立即,而是以间隔执行…换句话说,以25秒的间隔遍历每个存储的变量。
repeat_every(10) { client.search_through_subject(e) }