我有一个对象,我想输出一堆方法'结果来自。我有一个方法名称数组,并希望迭代它们:
img = Magick::Image::read('/Users/rich/Projects/imagemagick/orig/IMG_4677.jpg')[0]
atts = "background_color base_columns base_filename base_rows bias black_point_compensation".split(' ')
atts.each do |i|
puts img.i # problem evaluating i
end
我尝试过字符串插值和eval
,但我无法理解它是一种方法调用。
有没有办法可以将数组作为方法名称应用于对象?
答案 0 :(得分:3)
尝试使用public_send
:
atts = "upcase downcase".split
atts.each do |i|
puts 'hEllO'.public_send(i)
end
#HELLO
#hello