SqueakByExample:A.3: Difference between revisions

From 흡혈양파의 번역工房
Jump to navigation Jump to search
(SBE A.3 페이지 추가)
 
mNo edit summary
Line 42: Line 42:


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


'''Answer'''<br>
'''Answer'''<br>
Line 54: Line 54:


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


'''Answer'''
'''Answer'''

Revision as of 04:40, 30 August 2012

A.3 시스템 살펴보기

FAQ 5
책의 어디에나 있는 브라우저를 볼 수가 없어요. 어떻게된거죠?

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


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

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


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