Proc 클래스를 확장하여 해당 생성자가 인수의 해시를 가져올 수 있도록하고 일부 메타 프로그래밍 구성으로 메소드로 변환됩니다. 의 효과에 뭔가 :원숭이 루비의 패치 및 오버로드 메서드
p = Proc.new(this: 100, that: 200, yes: 1, no: 2) { |arg| arg.even? }
p.call(1) # => false
p.this # => 100
p.yes # => 1
는이 같은 일을의 루비 방법을 알고 싶어요. 메타 프로그래밍없이
감사합니다. 나는 4 분 안에 이것을 받아 들일 것이다 ... –
나는'def method_missing (k, * args); @ h.fetch (k) {super}; 끝 '대신. – akuhn
'method_missing'을 정의 할 때 항상'respond_to_missing? '도 구현하는 것이 가장 좋습니다. –