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) }