给定一个方法返回一个数组,另一个方法接受任意数量的参数,有没有办法以数组的每个元素作为参数调用第二个方法?
例如:
def arr
["a", "b", "c"]
end
def bar(*args)
args.each {|a| puts a}
end
我要打电话
bar "a", "b" , "c"
当然这是一个简化的例子,实际上 arr 可以返回任何大小的数组(比如它是一个 ActiveRecord 查找,我想将所有结果传递给 bar),因此我的问题。
最佳答案
你可以这样做:
my_array = ['a', 'b', 'c']
bar(*my_array)
这会将数组展平为单独的元素,并将它们作为单独的参数传递给方法。您可以对任何类型的方法执行此操作,而不仅仅是接受 *args 的方法。
所以在你的情况下:
bar *arr
关于ruby-on-rails - 在 Ruby 中,我可以将数组的每个元素单独传递给接受 *args 的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5253563/