MOP:访问任何插槽定义? (mito柱型)

2024-02-11

我定义了一个使用 Mito ORM 的类,插槽定义了一个:col-type:

(isbn
 :accessor isbn
 :initarg :isbn
 :col-type (or (:varchar 128) :null))

如何获得:col-type定义 ?由于这是我的类定义中的一个槽,是否没有通用的方法来访问它,例如slot-definition :col-type ... ?

On the clos-mop 文档 http://metamodular.com/CLOS-MOP/readers-for-slot-definition-metaobjects.html,我只找到如何访问

slot-definition-allocation
slot-definition-initargs
slot-definition-initform
slot-definition-initfunction
slot-definition-name
slot-definition-type

isbn 插槽显示如下:

#<MITO.DAO.COLUMN:DAO-TABLE-COLUMN-CLASS {1005928483}>
--------------------
Name: BOOKSHOPS.MODELS:ISBN
Init args: (:ISBN)
Init form: #<unspecified>
Init function: NIL
--------------------
Group slots by inheritance [ ]
Sort slots alphabetically  [X]

All Slots:
[ ]  %CLASS           = #<DAO-TABLE-CLASS BOOK>
[ ]  %DOCUMENTATION   = NIL
[ ]  %TYPE            = T
[ ]  ALLOCATION       = :INSTANCE
[ ]  ALLOCATION-CLASS = NIL
[ ]  COL-TYPE         = (OR (:VARCHAR 128) :NULL)
[ ]  DEFLATE          = #<unbound>
[ ]  GHOST            = NIL
[ ]  INFLATE          = #<unbound>
[ ]  INITARGS         = (:ISBN)
[ ]  INITFORM         = NIL
[ ]  INITFUNCTION     = NIL
[ ]  NAME             = BOOKSHOPS.MODELS:ISBN
[ ]  PRIMARY-KEY      = NIL
[ ]  READERS          = (BOOKSHOPS.MODELS:ISBN)
[ ]  REFERENCES       = NIL
[ ]  WRITERS          = ((SETF BOOKSHOPS.MODELS:ISBN))

Thanks.


The col-type是由以下提供的扩展mito.class.column:table-column-class。它有一个访问器%table-column-type,它被包裹着mito.class.column:table-column-type.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MOP:访问任何插槽定义? (mito柱型) 的相关文章

  • LISP:为什么mapcan 不接受我的列表作为参数?

    为了简化我的问题 为什么这有效 mapcan lambda l list 1 2 a b 这并不 mapcan lambda l 1 2 a b 我必须编写一个函数 使用映射函数在给定列表 L 的所有级别上替换列表 D 的所有元素中的一个元
  • 使用 Common Lisp 进行排序时出现意外的列表重复

    编辑 解决方案是将第一个 let 形式中的 1 替换为 list 1 这是因为我试图修改文字数据 谢谢您的帮助 我会投赞成票 但显然你需要 15 声望 这是我在这个网站上的第一篇文章 我正在解决一些欧拉计划 https projecteul
  • Common Lisp:编译与评估

    在带有 sbcl 的 Emacs Slime 上 一旦我在文件中定义了一个函数 或多个 我有两个选择 评估 例如与 C M x eval defun 汇编 例如使用 C c M k 编译文件 第二个也生成一个 fasl 文件 两者有何区别
  • Common Lisp 类型与类的区别

    在帖子中Common Lisp 类层次结构 https stackoverflow com questions 42514204 common lisp class hierarchy Rainer Joswig 和 Joshua Tayl
  • Common lisp:有没有一种不那么痛苦的方法来输入数学表达式?

    我喜欢 Common lisp 但有时输入简单的数学表达式真的很痛苦 a 8b 2 1 4bc 4b 2 1 当然我可以转换它 但是有点慢 我先写 然后在每个括号中写 我想知道这里是否有人知道更好的输入方法 我正在考虑编写一个数学宏 其中
  • 在 Common Lisp 中替换列表中的项目?

    我有一个事物列表 我称之为 L 一个索引 N 和一个新事物 NEW 如果我想用 NEW 替换 L 中 N 中的内容 最好的方法是什么 我是否应该获取到 N 的子列表以及从 N 到列表末尾的子列表 然后使用列表将第一部分 NEW 和最后一部分
  • 以列表作为参数的 defun

    我正在尝试选择 Lisp 作为我的新语言 但我在解决如何让函数的一部分作用于传递给它的列表的每个元素上时遇到了一些问题 为了学习如何解决这个问题 我试图编写一个相当基本的除法形式 当列表的一个元素为 0 时不会发出声音 而是只返回 0 de
  • Common Lisp 整数到十六进制的转换

    是否有一个与 parse integer ff radix 16 类似的函数可以让我以另一种方式返回 如果我有 int 255 如何将其转换为字符串 ff write to string 255 base 16
  • 如何从字符串创建关键字符号? [复制]

    这个问题在这里已经有答案了 从字符串创建符号非常简单 intern test gt test 我正在努力创造keywordplist 的符号 寻找类似的东西 XXXX test gt test 注意 intern test 不产生keywo
  • LISP:关键字参数,提供-p

    目前我正在学习 Peter Seibel 的 Practical Common Lisp 在 实用 一个简单的数据库 一章中 http www gigamonkeys com book practical a simple database
  • 如何在 SLIME 的 REPL 中获得 Common Lisp 的语法高亮显示?

    我想学习 Common Lisp 并通过 emacs 包管理器安装了 emacs 24 3 和 slime 在 slime REPL 语法高亮中不起作用 另一方面 当我启动 Lisp Mode 在 slime REPL 中 时 表达式的值不
  • 在lisp中,如何使用floor函数返回的第二个值?

    当我这样做时 4楼3 我得到了 1 1 3 但我该如何使用这 1 3 呢 例如 您可以使用将其绑定到变量multiple value bind multiple value bind quot rem floor 4 3 format t
  • 在 LISP 中使用“ash”执行二分查找?

    所以 我现在正在阅读 Land of Lisp 事实证明 Lisp 与我见过的其他编程语言有很大不同 无论如何 本书提供了一些我们要输入到 CLISP REPL 中的代码 defparameter small 1 defparameter
  • Lisp 当前内存使用情况

    我需要从 Common Lisp 程序中找出当前使用了多少内存 我知道没有可移植的方法 标准函数room以文本形式将信息打印到标准输出 而不是将其作为值返回 但是sb kernel dynamic usage在 SBCL 工作 其他 Com
  • CLISP - 反转简单列表

    我必须反转简单 单维 列表的元素 我知道有一个内置的反向函数 但我不能用它来做这个 这是我的尝试 defun LISTREVERSE LISTR cond lt length LISTR 2 LISTR listr is 1 atom or
  • 在 Parenscript 中使用 regex(正则表达式)

    我正在尝试 Parenscript 在尝试使用正则表达式函数时 我得到了意外的输出 例如 参考手册 https common lisp net project parenscript reference html shows regex f
  • LISP 中的变量和符号有什么区别?

    从范围上来说 内存中的实际实现 语法 例如 if let a 1 a 是变量还是符号 约尔格的回答指出了正确的方向 让我补充一点 我将讨论与 Common Lisp 类似的 Lisp 作为数据结构的符号 符号是 Lisp 中真实的数据结构
  • let* 和 set 之间的区别?在 Common Lisp 中

    我正在从事一个基因编程爱好项目 我有一个函数 宏设置 当以 setq setf 形式评估时 将生成一个如下所示的列表 setq trees make trees 2 gt x abs x 然后它将绑定到 lambda 函数
  • 解决斐波那契数列的 Lisp 方法

    我想尝试学习 Lisp 但很快就放弃了 我想我会再试一次 我正在看 求 400 万以下所有偶数斐波那契数的总和 我写了下面的代码 它可以工作 但是很丑陋 其中最主要的是它太慢了 因为它一直在进行简单的递归 当我用 Python 编写这个程序
  • 评估 Common Lisp 宏的参数

    我想制作一个宏 其行为取决于它的参数之一 例如 defclass myvar l initarg l reader l defparameter mv1 make instance myvar l 10 defmacro mac1 v pr

随机推荐