나는 Rebol에서 아주 기본적인 것을 시도 중입니다. 간단한 인스턴스 계층 구조 - question
기본 인스턴스와 일부 question
하위 인스턴스를 갖고 싶습니다. 그리고 나는 보호 된 인스턴스 속성을 원한다.Rebol의 개체 속성 보호
_question: make object! [
id: none
type: none
text: none ]
question-text: make _question [
type: 'text
new: func [
id' [integer!]
text' [string!]
] [
make self [
id: id'
text: text'
protect [ id type text ]
]
]
]
그러나 다음이 실패 :
내가 지금하고 있어요 것은 내가 두 번째 인스턴스 qt2을하면
qt1: question-text/new 1 "q-text1"
qt2: question-text/new 2 "q-text2"
, 내가 얻을 :
Script Error: Word id is protected, cannot modify
다음 그런 다음 보호 된 필드를 _question
밖으로 이동하여 question_text
에 넣으십시오. 그거. 그러나 그것은 단지 같은 오류로 이어집니다.
참고 : 저는 현재 Rebol2를 사용하고 있지만 Rebol3과 Red에서 실행하는 것이 이상적입니다. 그리고 나는 해킹을 피하고 싶다. (확실하다 - 모호하다. 파이썬 getitem()/setitem()
트릭은 괜찮을 것이다.) 그렇다면 필드를 비보호로 유지하는 것이 좋습니다.
참고이 * * 당신을 새로운 질문/아이디'에서 보호하지 않습니다 :이 작동하지만, REBOL 2의
'protect
기능과 상황의 변덕스러운 성격의 적용을받습니다 [id : 12] new-question'. – rgchris감사합니다. 광고 된대로 작동하며 해킹 - 임계 값 바로 아래입니다.) –