SqueakByExample:A.3

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.

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