SqueakByExample:1.9
메서드 찾기
때로는, 여러분이 메서드의 이름을 추측할 수 있거나, 또는 클래스의 이름보다는 적어도 메서드 이름의 최소한의 부분을 보다 더 쉽게 추측 할 수 있습니다. 예를 들어, 만약 현재 시간에 궁금할 경우, "now"라 불리는 메서드나 하위 문자열(substring)에 "now"를 포함하는 메서드를 기대할 것입니다. 그런데 이 메서드가 어디에 있을까요? 메서드 파인더(the method finder)는 여러분을 도와줄 수 있습니다.
"Tools" 플랩 밖으로 method finder icon(메서드 파인더 아이콘)을 드래그 하십시오. 상단 왼쪽 창에 "now"를 입력하고 accept 하십시오. (또는 RETURN 키를 누르십시오.)
메서드 파인더(the method finder)는 하위 문자열 "now"를 포함하고 있는 모든 메서드 이름 목록을 표시할 것입니다. "now"를 향해 스크롤을 내리려면, 목록으로 커서를 옮기고 "n"을 입력합니다. 이 기술은 모든 스크롤 되는 창들에서 동작합니다. "now"를 선택하면 그림 1.18에서 보이는 것처럼, 오른쪽 패널이 "now"라는 이름으로 메서드를 정의하는 3개의 패널을 보여줍니다. 이 패널들 중 아무 패널 한 개를 선택하면 그 패널 위에 브라우저가 열립니다.
평소에 여러분은 메서드가 존재한다는 좋은 생각을 갖고 계시겠지만, 그것이 어떤 이름으로 불리는 지에 대한 생각은 하고 있지 못하실 것입니다. 그래도 메서드 파인더(the method finder)는 도움이 됩니다! 예를 들면, 여러분이 문자열을 대문자로 변환하는 메서드 찾기를 원한다고 가정해 봅시다. 예컨데 해당 메서드는 'eureka'를 'EUREKA'로 변환할 것입니다.
그림 1.19에서 보이는 것처럼 'eureka'.'EUREKA'를 메서드 검색에 입력하고 RETURN키를 누르십시오.
메서드 검색은 여러분이 원하는 메서드를 제안할 것입니다. 메서드 파인더의 우측 창 줄의 시작부분에 있는 *(별표)는 요청한 결과를 얻기 위해 실제로 사용한 메서드를 가리킵니다. 그러므로, 문자열 asUppercase의 앞에 있는 *별표는, 클래스 문자열(the Class String)에 정의된 메서드 asUppercase을 힐행했으며, 우리가 원했던 결과를 반환했다는 사실을 알려줍니다.
별표(*-asterisk)를 갖고 있지 않은 메서드는 기대했던 결과를 반환한 메서드들과 동일한 이름을 가진 다른 메서드들 입니다. 그러므로 Characater>>asUppercase는 이 예제에서 실행되지 않았으며, 그 이유는 'eureka'가 문자 오브젝트가 아니기 때문입니다.
여러분은 또한 인자를 가진 메서드에 대해 메서드 파인더를 사용할 수 있습니다. 예를 들어, 만약 여러분이 두 개의 정수의 최대 공약수를 찾는 메서드를 찾고 있다면, 그 예로 25. 35. 5를 시도해볼 수 있습니다. 또한 탐색 범위를 좁히기 위해 메서드 검색에게 여러 개의 예를 제시할 수 있으며, 아래 패널에 있는 도움말 텍스트에서 더 많은 내용을 설명할 것입니다.