def example
@lines.select {|line| ... }.map {|line| ... }.uniq.sort
end
Ruby 1.9 및 1.8.7에서는 단순히 블록을 전달하지 않고 반복자를 연결하고 래핑 할 수도 있습니다.
enum.select.map {|bla| ... }
그러나이 경우에는 블록 유형이의 값을 반환 select하고 map일치하지 않기 때문에 실제로는 불가능 합니다. 다음과 같은 경우 더 의미가 있습니다.
enum.inject.with_index {|(acc, el), idx| ... }
AFAICS, 당신이 할 수있는 최선은 첫 번째 예입니다.
다음은 작은 예입니다.
%w[a b 1 2 c d].map.select {|e| if /[0-9]/ =~ e then false else e.upcase end }
# => ["a", "b", "c", "d"]
%w[a b 1 2 c d].select.map {|e| if /[0-9]/ =~ e then false else e.upcase end }
# => ["A", "B", false, false, "C", "D"]
그러나 당신이 정말로 원하는 것은 ["A", "B", "C", "D"].