나는 많은 방법의 결과를 출력하고 싶은 객체가 있습니다. 나는 메소드 이름의 배열을 가지고 그들을 통해 반복 할 :루비 메서드 이름 배열을 통해 반복
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
을하지만 난 그것이 메소드 호출의 실현을 얻을 수 없습니다.
개체에 메서드 이름으로 배열을 적용 할 수있는 방법이 있습니까?
더 적절한 구문 '(BACKGROUND_COLOR의 base_columns가 base_rows 바이어스 black_point_compensation을 base_filename) w %'또는 것'% I (BACKGROUND_COLOR의 base_columns가 base_rows 바이어스 black_point_compensation을 base_filename)'. '% w()'는 공백으로 구분 된 목록을 의미하며'String' 기반의'Array' (기본적으로'split ('') '와 동일합니다)로 변환합니다. '% i()'는 동일하지만 아이템이 적절한'Symbol' 명명 규칙을 따르는 경우'Symbol' 기반의'Array'로 변환됩니다. – engineersmnky
.split ('')을 실행했을 때 문제가있었습니다. 그래 너가 옳아. –
'% i'은 아마도 문자열이 메서드 조회를 위해 내부적으로 심볼로 변환되기 때문에 아마도 더 낫습니다. 약간 더 효율적일 수 있습니다. – Max