我正在调用第三方 API,它产生一个 block 并返回一个数组:
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
然后我想避免再次调用该方法,但要执行生成的 block 中的代码。
这是否有可能,或者是否有任何方法可以避免两次调用 all
方法?
最佳答案
如何将 block 存储在字符串中并稍后对其进行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
关于ruby - 如何避免调用两次产生 block 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19233756/