<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=GnuSmalltalkUsersGuide%3ABaseChapter_156</id>
	<title>GnuSmalltalkUsersGuide:BaseChapter 156 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=GnuSmalltalkUsersGuide%3ABaseChapter_156"/>
	<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=GnuSmalltalkUsersGuide:BaseChapter_156&amp;action=history"/>
	<updated>2026-05-01T18:59:26Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://trans.onionmixer.net/wiki/index.php?title=GnuSmalltalkUsersGuide:BaseChapter_156&amp;diff=4144&amp;oldid=prev</id>
		<title>Onionmixer: GSUG Symbol 페이지 추가</title>
		<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=GnuSmalltalkUsersGuide:BaseChapter_156&amp;diff=4144&amp;oldid=prev"/>
		<updated>2014-01-28T07:01:11Z</updated>

		<summary type="html">&lt;p&gt;GSUG Symbol 페이지 추가&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;;Symbol&lt;br /&gt;
&lt;br /&gt;
==Symbol==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;네임스페이스 Smalltalk에 정의됨&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;슈퍼클래스: String&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;범주: 언어-구현&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:나의 인스턴스들은 스몰토크 시스템에서 유일하다. 나의 인스턴스들은 서로 다르게 인쇄한다는 점만 제외하면 대부분의 경우 문자열과 같이 행동하며, 똑같이 인쇄된 표현을 가진 두 개의 인스턴스라면 사실 같은 인스턴스라고 보장할 수 있다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Symbol 클래스: built-ins===&lt;br /&gt;
&lt;br /&gt;
====intern: aString====&lt;br /&gt;
&lt;br /&gt;
Private -&amp;#039;aString asSymbol&amp;#039;와 동일하다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Symbol 클래스: 인스턴스 생성===&lt;br /&gt;
&lt;br /&gt;
====internCharacter: aCharacter====&lt;br /&gt;
&lt;br /&gt;
주어진 문자에 연관된 1-문자 부호를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====new====&lt;br /&gt;
&lt;br /&gt;
이 클래스의 인스턴스를 대상으로 해당 메서드를 호출해서는 안 된다.&lt;br /&gt;
&lt;br /&gt;
====new: size====&lt;br /&gt;
&lt;br /&gt;
이 클래스의 인스턴스를 대상으로 해당 메서드를 호출해서는 안 된다.&lt;br /&gt;
&lt;br /&gt;
====with: element1====&lt;br /&gt;
&lt;br /&gt;
유일한 요소가 element1인 컬렉션을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====with: element1 with: element2====&lt;br /&gt;
&lt;br /&gt;
전달된 순으로 된 매개변수들을 유일한 요소로 가진 컬렉션을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====with: element1 with: element2 with: element3====&lt;br /&gt;
&lt;br /&gt;
전달된 순으로 된 매개변수들을 유일한 요소로 가진 컬렉션을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====with: element1 with: element2 with: element3 with: element4====&lt;br /&gt;
&lt;br /&gt;
전달된 순으로 된 매개변수들을 유일한 요소로 가진 컬렉션을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====with: element1 with: element2 with: element3 with: element4 with: element5====&lt;br /&gt;
&lt;br /&gt;
전달된 순으로 된 매개변수들을 유일한 요소로 가진 컬렉션을 응답하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Symbol 클래스: 부호 테이블===&lt;br /&gt;
&lt;br /&gt;
====hasInterned: aString ifTrue: aBlock====&lt;br /&gt;
&lt;br /&gt;
aString이 intern되지 않았다면 false를 응답하라. 그 외의 경우 intern된 버전을 aBlock으로 전달하고 true를 응답하라. 이것이 작동하는 이유는, String&amp;gt;&amp;gt;#hash 는 VM이 문자열을 SymbolTable로 intern할 때 사용하는 것과 동일한 해시값을 계산하기 때문이다. 다른 것은 변경하지 않고 해싱 메서드 중 하나를 변경할 경우 해당 메서드를 break할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====isSymbolString: aString====&lt;br /&gt;
&lt;br /&gt;
aString이 이미 intern되었는지 응답하라. 이것이 작동하는 이유는, String&amp;gt;&amp;gt;#hash 는 VM이 문자열을 SymbolTable로 intern할 때 사용하는 것과 동일한 해시값을 계산하기 때문이다. 다른 것은 변경하지 않고 해싱 메서드 중 하나를 변경할 경우 해당 메서드를 break할 수 있다.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Calculates&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
====rebuildTable====&lt;br /&gt;
&lt;br /&gt;
SymbolTable을 재빌드하고, 그에 따라 쓰레기 수집이 Symbols를 참조해제(unreferenced)한다. 해당 프로세스가 실행되는 동안 선점(preemption)이 비활성화되는데, SymbolTable을 부분적으로 업데이트된 상태로 남겨두는 것이 허용되지 않기 때문이다. 이것이 작동하는 이유는, String&amp;gt;&amp;gt;#hash 는 VM이 문자열을 SymbolTable로 intern할 때 사용하는 것과 동일한 해시값을 계산하기 때문이다. 다른 것은 변경하지 않고 해싱 메서드 중 하나를 변경할 경우 해당 메서드를 break할 수 있다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Symbol: 기본===&lt;br /&gt;
&lt;br /&gt;
====deepCopy====&lt;br /&gt;
&lt;br /&gt;
수신자의 깊은 복사를 리턴한다. Symbols는 정체성 객체이므로 우리는 사실상 수신자 자체를 리턴한다.&lt;br /&gt;
&lt;br /&gt;
====keywords====&lt;br /&gt;
&lt;br /&gt;
수신자를 구성하는 키워드의 배열을 응답하되 수신자는 유효한 메시지 명이어야 한다&lt;br /&gt;
&lt;br /&gt;
(#+, #not, #printOn:, #ifTrue:ifFalse:, etc.).&lt;br /&gt;
&lt;br /&gt;
====numArgs====&lt;br /&gt;
&lt;br /&gt;
수신자가 지원하는 인자 수를 응답하되 수신자는 유효한 메시지 명이어야 한다 (#+, #not, #printOn:, #ifTrue:ifFalse:, etc.)&lt;br /&gt;
&lt;br /&gt;
====shallowCopy====&lt;br /&gt;
&lt;br /&gt;
수신자의 깊은 복사를 리턴한다. 부호는 정체성 객체이므로 우리는 사실상 수신자 자체를 리턴한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Symbol: built-ins===&lt;br /&gt;
&lt;br /&gt;
==== = aSymbol====&lt;br /&gt;
&lt;br /&gt;
수신자와 aSymbol이 동일한 객체인지 응답하라.&lt;br /&gt;
&lt;br /&gt;
====hash====&lt;br /&gt;
&lt;br /&gt;
수신자에 대한 해시값을 응답하라. Symbols는 속도에 최적화되었다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Symbol: 변환하기===&lt;br /&gt;
&lt;br /&gt;
====asString====&lt;br /&gt;
&lt;br /&gt;
수신자와 같은 문자로 된 String을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====asSymbol====&lt;br /&gt;
&lt;br /&gt;
하지만 우리는 이미 Symbol인데다가 Symbols는 정체성 객체이다! 따라서 수신자를 응답하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Symbol: misc===&lt;br /&gt;
&lt;br /&gt;
====species====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;String&amp;#039;을 응답하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Symbol: 보관하기===&lt;br /&gt;
&lt;br /&gt;
====displayOn: aStream====&lt;br /&gt;
&lt;br /&gt;
수신자의 표현을 aStream 상에 인쇄하라. 수신자를 나타내는 String을 응답하라. 대부분 객체의 경우 단순히 그것의 #printOn: 표현에 해당하지만, 문자열과 문자의 경우 불필요한 달러나 큰따옴표 쌍이 제거된다.&lt;br /&gt;
&lt;br /&gt;
====displayString====&lt;br /&gt;
&lt;br /&gt;
수신자를 나타내는 String을 응답하라. 대부분 객체의 경우 단순히 그것의 #printString 표현에 해당하지만, 문자열과 문자의 경우 불필요한 달러나 큰따옴표 쌍이 제거된다.&lt;br /&gt;
&lt;br /&gt;
====printOn: aStream====&lt;br /&gt;
&lt;br /&gt;
수신자의 표현을 aStream 상에 인쇄하라..&lt;br /&gt;
&lt;br /&gt;
====storeLiteralOn: aStream====&lt;br /&gt;
&lt;br /&gt;
수신자와 같은 부호로 컴파일하는 스몰토크 코드를 aStream 상에 인쇄하라.&lt;br /&gt;
&lt;br /&gt;
====storeOn: aStream====&lt;br /&gt;
&lt;br /&gt;
수신자와 같은 부호로 컴파일하는 스몰토크 코드를 aStream 상에 인쇄하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Symbol: 검사하기===&lt;br /&gt;
&lt;br /&gt;
====isSimpleSymbol====&lt;br /&gt;
&lt;br /&gt;
수신자를 인용 문자열 (예: #&amp;#039;abcdef&amp;#039;) 형태로 표현해야 하는지 응답하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Symbol: 기능 검사하기===&lt;br /&gt;
&lt;br /&gt;
====isString====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;false&amp;#039;를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====isSymbol====&lt;br /&gt;
&lt;br /&gt;
항상 &amp;#039;true&amp;#039;를 응답하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:GnuSmalltalkUsersGuide]]&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
</feed>