struct - 访问数组 Clisp 中结构的成员
问题描述
想象一下,我有一个函数可以接收这样的结构数组:
(defun name-of-func (array)
(dotimes (i (array-total-size array))
(print (aref array i))))
是stuct
这样的
(defstruct sTSP
cidade
x
y)
如何访问数组位置上x
的字段?i
解决方案
请看一下 的定义defstruct
。它很长,但非常值得一读。如果您像我们所有人一样懒惰,请搜索reader
:
(defstruct foo x y z)
(defparameter foo (make-foo :x 2 :y 4))
(foo-x foo)
==> 2
(foo-y foo)
==> 4
(foo-z foo)
==> NIL
PS1。请注意,array-total-size
不应
与一起使用,aref
而应与row-major-aref
. 不同之处在于在底层实现为s的多维数组。vector
例如,您的功能将在(make-array '(2 2) :initial-element (make-sTSP))
.
PS2。我重新使用foo
类型名称和变量名称来说明它们驻留在不同的名称空间。
推荐阅读
- python - 为什么 if 语句不能识别 int == 0?
- python - ImportError:没有名为 can 但根据 pip list 存在的模块
- swift - View Controller 找不到 func 成员
- javascript - GET 404(未找到)JavaScript 问题
- javascript - 如果它是某个字符,如何将最后一个字符包装在元素中?
- javascript - 仅当在视口中时如何使滑块起作用?
- javascript - 如何删除数组中的对象数组中的对象?
- java - Spring Boot 2.1 以调试模式启动根记录器,直到横幅打印?
- postgresql - Postgres“时区”在转换时不尊重山区标准时间
- wordpress - 如何添加按销售折扣过滤产品的 woocommerce 过滤器?