SqueakByExample:A.3

From 흡혈양파의 번역工房
Jump to navigation Jump to search

A.3 시스템 탐색

FAQ 5
책에서 자주 언급된 브라우저를 볼 수가 없어요. 어떻게된거죠?

Answer
당신은 아마 OmniBrowser 가 기본으로 설치된 이미지를 사용할 수 있을겁니다. 시스템 브라우저창의 상단-왼쪽 코너에 있는 작은 메뉴아이콘을 클릭해서 기본값을 변경할 수 있습니다, "X"와 시스템브라우저 라벨 사이에 타나나는 메뉴에서 "Choose new default browser"를 선택합니다. #Browser 를 선택하면 구형의 기본브라우저를 사용할 수 있습니다. (World ▷ open...▷ system browser 메뉴에서 환경설정의 변경을 적용할 수 있습니다. 하지만 도구플랩의 브라우저 아이콘으로 드래그한다면 아무일도 일어나지 않습니다.)


FAQ 6
어떻게 클래스를 검색하나요?

Answer
CMD-b (browse)를 눌러서 클래스 이름으로 하면되고, 또는 CMD-f 를 눌러서 클래스 브라우저의 카테고리 창에서 할 수 있습니다.


FAQ 7
어떻게하면 super클래스에 대한 모든 전송을 찾기/검색 할 수 있습니까?

Answer
두번째 방법이 훨씬 빠릅니다:

SystemNavigation default browseMethodsWithSourceString: 'super'.
SystemNavigation default browseAllSelect: [:method | method sendsToSuper ].


FAQ 8
어떻게 하면 계층구조에 속한 모든 super클래스에 대한 전송을 탐색할 수 있습니까?

Answer

browseSuperSends := [:aClass | SystemNavigation default
  browseMessageList: (aClass withAllSubclasses gather: [ :each |
    (each methodDict associations
      select: [ :assoc | assoc value sendsToSuper ])
        collect: [ :assoc | MethodReference class: each selector: assoc key ] ])
  name: 'Supersends of ' , aClass name , ' and its subclasses'].
browseSuperSends value: OrderedCollection.


FAQ 9
어떻게하면 클래스에 의해 새로 도입된 메서드를 찾을 수 있나요?(오버라이드된 메서드는 포함하지 않습니다)

Answer
이 아래에서 True 를 이용해서 의해 도입된 것을 찾는 방법을 알려드립니다:

newMethods := [:aClass| aClass methodDict keys select:
  [:aMethod | (aClass superclass canUnderstand: aMethod) not ]].
newMethods value: True      an IdentitySet(#asBit)


FAQ 10
어떻게 (구현)하면 어떤 클래스의 메서드는 추상적이라고 말할 수 있나요?

Answer abstractMethods := [:aClass | aClass methodDict keys select: [:aMethod | (aClass>>aMethod) isAbstract ]]. abstractMethods value: Collection −→ an IdentitySet(#remove:ifAbsent: #add: #do:)


FAQ 11
나는 AST 표현식의 view 를 어떻게 생성해야 하나요?

Answer
http://squeaksource.com. 에서 AST를 로드한 이후,다음을 실행합니다:

(RBParser parseExpression: '3+4') explore

(Alternatively explore it.)


FAQ 12
시스템 안의 모든 특성Traits 을 찾으려면 어떻게 해야하나요?

Answer

Smalltalk allTraits


FAQ 13
어떻게 하면 클래스에서 사용가능한 특성Traits 찾을 수 있나요?

Answer

Smalltalk allClasses select: [:each | each hasTraitComposition and: [each traitComposition notEmpty ]]


Notes