2013-11-24 5 views

답변

1

매개 변수에는 형식이 없으므로 매개 변수를 인쇄 할 수 없습니다. 메소드의 이름과 매개 변수의 이름을 제공하는 메소드 헤더를 인쇄하고자하는 것 같습니다. 매개 변수의 이름을 가져와야하므로 메소드 이름이 이미 있습니다. 매개 변수의 이름을 가져 오는 유일한 방법은 원래 소스 문자열에서 가져 오는 것입니다. 다음은 소스 문자열에서 매개 변수 이름을 추출하는 좋은 방법입니다. 이 예제에서는 Object 클래스의 printOn : 메서드 매개 변수 이름을 가져옵니다.

Pharo3에서
(Parser new parse: (Object sourceCodeAt: #printOn:) class: Object) arguments 
    collect: [:each | each name] 
+0

가 하나 개 이상의 매개 변수를하는 방법 나에게 예를 전해 주 시겠어요? – Asan

+0

(파서 새로운 구문 분석 : (magnitude sourceCodeAt : #between : and :) class : Magnitude) 인수 collect : [: each | 각 이름] –

+0

메서드에 대해 sourceCodeAt를 호출해야합니다. 하지만이 메서드는 문자열로 변수에 있습니다. X 대신 'X'가 있습니다. 메소드 인스턴스로 X로 변경하여 sourceCodeAt를 호출 할 수 있습니까? – Asan

1

심지어 쉽게 :

(Object>>#printOn:) argumentNames 
관련 문제