![]() |
1
7
我同意这个结构图中的其他海报并不真正支持继承。但是,如果您只想创建一个使用另一个键的新结构,这将有效:
你不需要
|
![]() |
2
6
如果给一个结构一个要关联的键,则可以使它成为另一个结构的值。你可以这样做。
(您可以通过
|
![]() |
3
6
嵌套结构是可能的,有时是可取的。但是,看起来您正在尝试做一些不同的事情:看起来您正在尝试使用结构类型的继承,而不是组合。也就是说,在表2中,你创建了一个 包含 一个rect,但您正在尝试构造一个实例,就好像它 是 直肠。表单1之所以有效,是因为您正在从预先存在的rect构造c-rect1,这是使用组合的正确方法。 快速搜索Clojure组或者仅仅是在Web上,一般来说应该能够很好地描述组合和继承之间的区别。在clojure中,构图或duck类型(再次参见google)几乎总是优先于继承。 编辑: 回答您的问题3:如Brian Carper在回答中所述,使用->提取嵌套结构中的数据的另一种选择是:与其兄弟体关联并更新: 例如:
|
![]() |
4
1
我对Clojure真的很陌生,所以我可能错了。但我想你不能做这样的事
就我所了解的clojure结构而言,这将创建一个结构(基本上是一个具有已知键的映射),它以某种方式将结构“rect”作为其键之一。 我的假设得到了这样的观察结果的支持:对(struct rect)的简单评估
而对(struct color rect)的评估得出:
编辑:可以帮助您的事实是,结构不限于键,它们是用定义的。似乎你可以通过这样的方式来完成你正在尝试的事情:
|
![]() |
5
1
我现在意识到这是一个老问题,但我想出了以下宏:
这样你就可以写下:
测试:
这是你想要的吗? 它也可以被修改,以便使用结构的集合。或者甚至允许您使用其他结构定义作为键的名称,这些键自动扩展为由此类结构生成的键:
|
![]() |
cng · 如何在嵌套数组中查找值,然后将值从布尔值更改为字符串? 2 年前 |
![]() |
Tanu · 使用三元运算符时获得Lint无嵌套三元错误 2 年前 |
![]() |
SpaceBallz · 比较嵌套列表中的值 3 年前 |
![]() |
Orsi · 选择嵌套列表的最大值和最小值。网 3 年前 |
![]() |
Hendrik · 在尝试将数组分解为新变量以进行赋值时遇到问题 3 年前 |
![]() |
SOS · 初学者对有关嵌套对象函数的JavaScript语法感到困惑 3 年前 |
![]() |
Teodor Kostovski · OCaml中的嵌套函数及其参数 3 年前 |
![]() |
lingyau lee · 递归-对嵌套列表求和 3 年前 |