Ruby 如何避免调用两次生成块的方法?
我正在调用第三方API,该API生成一个块并返回一个数组:Ruby 如何避免调用两次生成块的方法?,ruby,Ruby,我正在调用第三方API,该API生成一个块并返回一个数组: my.api.all arg: value do |ret| #block end 我想以某种方式调用该方法以获取数组的大小: array = my.api.all(arg: value) if array.size > minValue #avoid calling all again, but how? my.api.all arg: value do |ret| #block end end 然
my.api.all arg: value do |ret|
#block
end
我想以某种方式调用该方法以获取数组的大小:
array = my.api.all(arg: value)
if array.size > minValue
#avoid calling all again, but how?
my.api.all arg: value do |ret|
#block
end
end
然后,我希望避免再次调用该方法,而是让生成的块中的代码执行
这是否有任何可能,或者是否有任何方法可以避免调用
all
方法两次?将块存储在字符串中,然后eval
如何
str = ""
array = my.api.all arg: value do |ret|
str = <<-eos
#code e.g.
puts "block executed with arg: #{ret}"
eos
end
if array.size > minValue
eval str
end
str=“”
array=my.api.all arg:value do | ret|
str=在执行块时您有权访问返回的数组吗?@fotanus我没有权限访问块中返回的数组