GnuSmalltalkUsersGuide:BaseChapter 048
- 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의 정확한 의미는 수신자의 클래스에 따라 좌우된다.