1
나는 인트로 스펙 션으로 놀고 있으며 런타임에 인수 개수와 인수 이름을 추출하려고합니다. 이런 식으로 구현할 수 있을까요?루비 메서드 인트로시
class Greeter
def self.greet(name, weekday = "Friday")
"Hello #{name}. Today is #{weekday}"
end
def self.splatter(*arguments)
arguments.join("|")
end
end
Greeter.argument_count(:greet)
=> 1..2
Greeter.argument_names(:greet)
=> [:name, :weekday]
Greeter.argument_count(:splatter)
=> [0..Infinity]
나는 인수의 이름을 검색하는 방법에 대한 아무 생각이 없습니다.
그러나 난수를 무작위로 넘겨이 메서드를 의도적으로 호출하여 ArgumentError
을 트리거 한 다음 예외 메시지에서 허용되는 인수 개수를 추출하여 인수 개수를 추출 할 수있었습니다. 그러나 이것은 위험하며 스 플랫 메서드 서명에는 작동하지 않습니다.
arity''의 결과는 해석하기 조금 어려울 수 있습니다 - [방법] (http://www.ruby-doc.org/core-2.1.2/에 rubydoc 페이지를 살펴 Method.html # method-i-arity)에 대한 설명이 나와 있습니다. –