GnuSmalltalkUsersGuide:BaseChapter 048

From 흡혈양파의 번역工房
Revision as of 04:43, 27 January 2014 by Onionmixer (talk | contribs) (GSUG CString 페이지 추가)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
CString

CString

네임스페이스 Smalltalk에 정의됨

슈퍼클래스: CPtr

범주: 언어-C 인터페이스


엄밀히 말하면 CString은 CChar에 대한 포인터이다. 하지만 스몰토크에서는 구분된 데이터타입이기 때문에 개발자들이 좀 더 설명적인 타입을 이용해 좀 더 정밀하게 구문을 표현하도록 해주므로 별개의 데이터 타입으로 매우 유용하게 사용될 수 있다.
CChar는 char에 대한 포인터인 것처럼 CString은 사실상 C 용어로 보면 문자열에 대한 *포인터*임을 주목하라: C 용어로 하자면 char**이다. char*에서 String을 꺼내야 하는 경우 CChar>>#asString을 사용하라.
보통 나는 문자의 배열과 문자에 대한 포인터 간 cross 처럼 행동한다. 나는 두 가지 데이터 타입에 대한 프로토콜을 제공한다. 나의 #value 메서드는 스칼라 데이터타입에서 예상하듯 Smalltalk String을 리턴한다.


C String 클래스: 접근하기

cObjStoredType

Private - CObject를 #at:put: 에 의해 보관될 스몰토크 객체로 변환하도록 해준다.


CString 클래스: 인스턴스 생성

type

수신자에 대한 CType을 응답하라-예를 들어 수신자가 CByte인 경우 CByteType를 응답하라.

value: anObject

전달된 값, anObject를 포함하는 새로 할당된 CObject를 응답하라. CObject가 자동으로 해제되길 원한다면 #addToBeFinalized를 호출할 것을 명심하라.


CString: 접근하기

cObjStoredType

Private - CObject 를 #at:put: 에 의해 보관될 스몰토크 객체로 변환을 제공한다.

value

수신자가 가리키는 값을 응답하라. 정확한 리턴 값은 수신자의 클래스에 따라 좌우된다.

value: aValue

수신자를 값, aValue에 대한 포인트(point)로 설정하라. aValue의 정확한 의미는 수신자의 클래스에 따라 좌우된다.


Notes