SqueakByExample:1.9

From 흡혈양파의 번역工房
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

메서드 찾기

때로는, 여러분이 메서드의 이름을 추측할 수 있거나, 클래스의 이름보다는 적어도 메서드 이름의 작은 부분을 보다 더 쉽게 추측 할 수 있습니다. 예를 들어, 만약 현재 시간이 궁금할 경우, "now"라 불리는 메서드나 하위 문자열에 "now"를 포함하는 메서드를 기대할 수 있을 것입니다. 그런데 이 메서드는 어디에 있을까요? Method Finder 가 도와드릴 수 있습니다.


Squeak comment.png"Tools flap" 밖으로 method finder 아이콘을 끌어내십시오. 상단 왼쪽 창에 "now"를 입력하고 accept 하십시오. (또는 그냥 return 키를 누르십시오.)


Method Finder 는 하위 문자열 "now" 를 포함하고 있는 모든 메서드 이름의 목록을 표시할 것입니다. "now" 를 향해 스크롤을 내리려면, 목록으로 커서를 옮기고 "n"을 입력합니다. 이 기술은 모든 스크롤 창에서 동작합니다. "now" 를 선택하면 그림 1.18에서 보시는 바와 같이 오른쪽 창에서 이 이름으로 정의된 세가지 클래스 및 메서드를 보여줍니다. 이 항목 중 아무거나 한가지를 선택하면 해당 창에 브라우저를 엽니다.


그림 1.18: "now" 이름을 가진 메서드를 정의한 세가지 클래스를 보여주는 Method Finder


평소에는 메서드가 존재한다는 바람직한 생각을 갖고 계시겠지만, 그것이 어떤 이름으로 불리는 지에 대한 생각은 하고 있지 못하실 것입니다. 이 상황에서도 Method Finder 는 도움가 도움을 줄 수 있습니다! 예를 들면, 'eureka' 를 'EUREKA' 로 모든 문자를 대문자로 변환하는 상황을 가정해봅시다.


Squeak comment.png그림 1.19에서 보이는 것처럼 'eureka'.'EUREKA'를 메서드 검색에 입력하고 RETURN키를 누르십시오.


Method Finder 는 여러분이 원하는 메서드를 제시할 것입니다. Method Finder 의 우측 패인의 각각의 라인 시작부분에 있는 *(별표) 문자는 요청한 결과를 가져오기 위해 실제로 사용한 메서드임을 가리킵니다. 따라서, String asUppercase 의 앞 부분의 *(별표) 문자는, String 클래스에 정의된 asUppercase 메서드를 실행했으며, 우리가 원했던 결과를 반환했음을 의미합니다. *(별표)를 갖고 있지 않은 메서드는 기대했던 결과를 반환하는 메서드와 동일한 이름을 가진 다른 메서드입니다. 따라서 'eureka' 는 Character 객체가 아니므로 Characater>>asUppercase 를 실행하지 않았습니다.


그림 1.19: 메서드 찾기 예제


또한 인자를 가진 메서드에 대해서도 Method Finder 를 사용할 수 있습니다. 예를 들어, 만약 여러분이 두 개의 정수의 최대 공약수를 찾는 메서드를 찾고 있다면, 그 예로 '25'. '35'. '5' 를 시도해볼 수 있습니다. 또한 탐색 범위를 좁히기 위해 메서드 검색에 여러 가지 예제를 제시할 수도 있으며, 하단 창에 있는 도움말 텍스트로 더 많은 내용을 설명합니다.


Notes