나는 다음과 같이 분자 역학에 대한 몇 가지 일을하는 클래스를 형성하고 있습니다 :initform은 언제 사용됩니까?
(defclass %atom (particle)
((name :initarg :name :initform (error "Every atom in the system must have a name!"))
(mass :accessor mass :initarg :mass :initform (getmass name))
(charge :accessor charge :initarg :charge :initform (getcharge name))))
가 처음에 내가 어떻게 든 initform 즉 (getmass 명)으로 클래스 정의 내에서 다른 슬롯을 참조 수 있다고 생각 -하지만 사실이 아님이 밝혀졌습니다 (또는 그렇지 않습니까?!). 대신, initialize-instance는 모든 초기화 작업을 처리 할 수있는 공간이라고 할 수 있습니다.
내가 가진 질문은 다음과 같습니다. initform 사용? 관용적 환경 설정이란 무엇입니까? 나는 init()가 제공되지 않을 때, ("...") 코드를 생성하고, 디폴트 인자를 초기화하기 위해 위와 같이 사용하는 것을 보았다. 하지만 둘 모두 초기화 인스턴스에 쉽게 들어갈 수 있으며 거기에서 더 이해할 수 있습니다. 특별한 방법이 있습니까? initform이 일반적으로 사용됩니까?