이의 내가 발동/람다/블록/방법이 있다고 가정 해 봅시다/등 같은 : 나는 매개 변수의 이름을 찾을 수 있습니다 알고루비 : 옵션 PROC 인수의 기본값을받는 방법
2.1.2 :075 > procedure = Proc.new { |a, b=2, *c, &d| 42 }
=> #<Proc:[email protected](irb):75>
로 :
2.1.2 :080 > procedure.parameters
=> [[:opt, :a], [:opt, :b], [:rest, :c], [:block, :d]]
하지만 그것은 하지 주어진다면 주어진 선택적 매개 변수 가정 것이다 값을 가져 가야합니까 어떻게?
PS : 예. 나는이 질문/대답 전에 here,하지만 이전 솔루션은 merb
보석의 사용을 필요로 실제로는 약간 오해의 소지가있다 알고있다. merb
그 자체가 질문에 답했을 때 그 기능을 제공 한 JRuby 나 MRI가 아닌 한 methopara
보석에 의존합니다. 슬프게도, 현재, 은 포기할 것 같다. 또한, 오직 루비 1.9 (그리고 최신 버전조차도 지원하지 않음), 그래서 현재 루비 버전에서 작동하는 솔루션을 찾고 있습니다.
저는 이것이 거의 불가능하다고 생각합니다. 소위 말하는 '기본값'값은 모든 종류의 실행 코드 일 수 있습니다. 전화 할 때마다 실행됩니다. – hakcho
@hakcho, 아주 잘 잡습니다. (나는이 계정을 완전히 잃어 버렸고, 게시 한 이래 완전히 다른 접근법을 사용했다.) 여전히 값 (또는 루틴이라면 루틴)에 프로그래밍 방식으로 액세스하는 것이 좋을 것이다. – mikev