SqueakByExample:A.3: Difference between revisions

From 흡혈양파의 번역工房
Jump to navigation Jump to search
(SBE A.3 페이지 추가)
 
(번역수정)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
==A.3 시스템 살펴보기==
==A.3 시스템 탐색==


'''FAQ 5'''<br>
'''FAQ 5'''<br>
책의 어디에나 있는 브라우저를 볼 수가 없어요. 어떻게된거죠?
책에서 자주 언급된 브라우저를 볼 수가 없어요. 어떻게된거죠?


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




Line 12: Line 12:


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




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


'''Answer'''<br>
'''Answer'''<br>
Line 27: Line 27:


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


'''Answer'''<br>
'''Answer'''<br>
Line 42: Line 42:


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


'''Answer'''<br>
'''Answer'''<br>
우리는 여기서 True에 의해 도입된 것을 찾는 방법을 알려드립니다:
이 아래에서 True 를 이용해서 의해 도입된 것을 찾는 방법을 알려드립니다:
<syntaxhighlight lang="smalltalk">
<syntaxhighlight lang="smalltalk">
newMethods := [:aClass| aClass methodDict keys select:
newMethods := [:aClass| aClass methodDict keys select:
   [:aMethod | (aClass superclass canUnderstand: aMethod) not ]].
   [:aMethod | (aClass superclass canUnderstand: aMethod) not ]].
newMethods value: True −→ an IdentitySet(#asBit)
newMethods value: True   ⇒  an IdentitySet(#asBit)
</syntaxhighlight>
</syntaxhighlight>




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


'''Answer'''
'''Answer'''
Line 64: Line 64:


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


'''Answer'''<br>
'''Answer'''<br>
Line 75: Line 75:


'''FAQ 12'''<br>
'''FAQ 12'''<br>
시스템 안의 모든 Traits를 찾으려면 어떻게 해야하나요?
시스템 안의 모든 특성<sup>Traits</sup> 을 찾으려면 어떻게 해야하나요?


'''Answer'''<br>
'''Answer'''<br>
Line 84: Line 84:


'''FAQ 13'''<br>
'''FAQ 13'''<br>
어떻게 하면 클래스의 traits를 이용해서 찾을 수 있나요?
어떻게 하면 클래스에서 사용가능한 특성<sup>Traits</sup> 찾을 수 있나요?


'''Answer'''<br>
'''Answer'''<br>
Line 90: Line 90:
Smalltalk allClasses select: [:each | each hasTraitComposition and: [each traitComposition notEmpty ]]
Smalltalk allClasses select: [:each | each hasTraitComposition and: [each traitComposition notEmpty ]]
</syntaxhighlight>
</syntaxhighlight>


==Notes==
==Notes==

Latest revision as of 16:48, 16 September 2013

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