map(&:name) 은 무슨 기능인가요?


발생하는 문제 및 실행환경

RailsCast에서 이런 코드를 봤는데 map(&:name)(&:name)처럼 쓰는게 뭔지 모르겠습니다.

소스코드

def tag_names
  @tag_names || tags.map(&:name).join(' ')
end
  • 2016년 02월 23일에 작성됨

조회수 176


1 답변


좋아요
0
싫어요
채택취소하기

tags.map(&:name.to_proc).join(' ')를 짧게 쓴것과 같습니다.

footo_proc 메소드가 있는 객체일 때 쓸 수 있고,

&foo로 인자를 넘기는건 foo.to_proc를 call한 결과를 인자로 넘기는 것과 같습니다.

class Symbol
  def to_proc
    Proc.new do |obj, *args|
      obj.send self, *args
    end
  end
end
  • 2016년 02월 23일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close