mam tworząc klasę dla niektórych prac nad dynamiki molekularnej w następujący sposób:Kiedy używany jest 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))))
Początkowo myślałem, że mogę w jakiś sposób odnoszą się do innych gniazd w definicji klasy ze związkiem initform czyli (getmass name) - ale że okazuje się nieprawdziwe (lub robi to?!?). Zamiast tego powiedziano mi, że initialize-instance będzie miejscem, w którym wszystkie te rzeczy inicjalizacyjne będą wystarczająco jasne.
Pytanie, które mam, to: kiedy użyto initform? Jakie są preferencje idiomatyczne? Widziałem, jak był używany do generowania kodu ("..."), a także do inicjowania domyślnych argumentów, gdy nie podano: initarg. Ale oba te mogą łatwo wpasować się w instancję inicjującą i mogą mieć większy sens. Czy jest jakiś szczególny sposób: generalnie stosuje się initform?