0
루비는이 같은 방법을 취할 수 있습니다메소드 행을 문자열로 변환하는 방법은 무엇입니까?
def a_few_methods
method1
method2
end
을 ...이 같은 배열을 만들?
['method1', 'method2']
나는 작동 다음을하고 있어요,하지만 거추장스러운 것 같다
class Foo
def self.method_array
%w[method1 method2]
end
def a_few_methods
self.class.method_array.each { |s| send s }
end
end
나는 방법은 개체 상속 볼 수 있지만 나는 후드 '얻을 수있는 방법이 표시되지 않습니다 소스 파일을 문자열로 읽는 것 말고는 그걸 잡아라. 다른 방법이 있습니까?
왜 로컬 변수를 만든 다음 완전히 무시합니까? –
@ Jörg W Mittag 어떤 로컬 변수? 당신은'arr'을 의미합니까? 그것은 Ruby에서 기본적으로 반환되기 때문입니다. 다른 언어 같은 메소드에서 명시적인 return 키워드가 필요하지 않습니다. Ruby의 또 다른 장점은 원하는 클래스를 확장 할 수 있다는 것입니다. 이것을 String 클래스에 추가하려면 Foo
mutantkeyboard
그러나 'arr'을 사용하지 마십시오. 코드를 제거하면 코드가 똑같은 방식으로 작동하므로 향후 코드 독자를 혼란스럽게하지는 않습니다. 아, 아뇨,'String'을 상속하면'Foo'의 메소드를 사용할 수있는 문자열이 없으며'Foo' 객체 만 사용할 수 있습니다. –