SqueakByExample:A.3: Difference between revisions
Onionmixer (talk | contribs) mNo edit summary |
Onionmixer (talk | contribs) (번역수정) |
||
(One intermediate revision 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}} 메뉴에서 환경설정의 변경을 적용할 수 있습니다. 하지만 도구플랩의 브라우저 아이콘으로 드래그한다면 아무일도 일어나지 않습니다.) | ||
Line 12: | Line 12: | ||
'''Answer'''<br> | '''Answer'''<br> | ||
CMD | CMD-b (browse)를 눌러서 클래스 이름으로 하면되고, 또는 CMD-f 를 눌러서 클래스 브라우저의 카테고리 창에서 할 수 있습니다. | ||
'''FAQ 7'''<br> | '''FAQ 7'''<br> | ||
어떻게하면 | 어떻게하면 super클래스에 대한 모든 전송을 찾기/검색 할 수 있습니까? | ||
'''Answer'''<br> | '''Answer'''<br> | ||
Line 27: | Line 27: | ||
'''FAQ 8'''<br> | '''FAQ 8'''<br> | ||
어떻게 하면 계층구조에 속한 모든 | 어떻게 하면 계층구조에 속한 모든 super클래스에 대한 전송을 탐색할 수 있습니까? | ||
'''Answer'''<br> | '''Answer'''<br> | ||
Line 42: | Line 42: | ||
'''FAQ 9'''<br> | '''FAQ 9'''<br> | ||
어떻게하면 클래스에 의해 도입된 | 어떻게하면 클래스에 의해 새로 도입된 메서드를 찾을 수 있나요?(오버라이드된 메서드는 포함하지 않습니다) | ||
'''Answer'''<br> | '''Answer'''<br> | ||
이 아래에서 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 | newMethods value: True ⇒ an IdentitySet(#asBit) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 64: | Line 64: | ||
'''FAQ 11'''<br> | '''FAQ 11'''<br> | ||
나는 | 나는 AST 표현식의 view 를 어떻게 생성해야 하나요? | ||
'''Answer'''<br> | '''Answer'''<br> | ||
Line 75: | Line 75: | ||
'''FAQ 12'''<br> | '''FAQ 12'''<br> | ||
시스템 안의 모든 | 시스템 안의 모든 특성<sup>Traits</sup> 을 찾으려면 어떻게 해야하나요? | ||
'''Answer'''<br> | '''Answer'''<br> | ||
Line 84: | Line 84: | ||
'''FAQ 13'''<br> | '''FAQ 13'''<br> | ||
어떻게 하면 | 어떻게 하면 클래스에서 사용가능한 특성<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 ]]