(ql:quickload :postmodern)
(defpackage :test-case
(:use :cl)
(:import :pomo))
(in-package :test-case)
;; (defclass dao-class (standard-class)
;; ((direct-keys :initarg :keys :initform nil :reader direct-keys)
;; (effective-keys :reader dao-keys)
;; (table-name)
;; (column-map :reader dao-column-map))
;; (:documentation "Metaclass for database-access-object classes."))
(defclass definition ()
((id :col-type serial :reader definition-id)
(content :col-type string :initarg :content :accessor definition-content)
(word :col-type string :initarg :word :accessor definition-word))
(:metaclass dao-class)
(:keys id))
(pomo:dao-keys 'definition)
;; => (ID)
;; What I am setting with :keys? a slot in the meta class?
質問する
433 次
1 に答える
3
dao-class
という名前のスロットdirect-keys
があるので、あなたの質問を正しく理解していれば、答えは次のとおりです。「はい、メタクラスのスロットに値を提供します。」:initarg
:keys
(:keys id)
direct-keys
dao-class
編集より正確に言うと、ここでは、言葉遣いが明確ではないため...dao-class
はメタクラス、つまりインスタンスがクラス自体であるクラスです。この場合、クラス definition
は のインスタンスでdao-class
あり、スロットdirect-keys
( で宣言dao-class
) を持ち、そのスロットの値はオプションdefinition
で指定された値から初期化され:keys
ます。
于 2013-06-24T15:18:58.457 に答える