首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >圆括号在clojure.test故障输出中的含义是什么?

圆括号在clojure.test故障输出中的含义是什么?
EN

Stack Overflow用户
提问于 2021-07-02 14:26:37
回答 2查看 113关注 0票数 0

在我的一个测试中,我有以下输出:

代码语言:javascript
复制
Assertion failed:
Expected :[[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] ["seq07"] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []]
Actual   :[() () () () () () () () () () () () () () () () () () () () () () () () () () ("seq07") () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()]

在此输出中,()("seq07")表示什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-02 14:32:16

()是列表的符号,而[]是向量的符号

()是一个空列表,而("seq07")是一个包含单个成员的列表,即字符串seq07

您可以阅读有关clojure列表here的更多信息

编辑:刚刚找到了这个关于列表和向量的interesting SO question

票数 1
EN

Stack Overflow用户

发布于 2021-07-02 17:19:48

正如在另一个答案中所指出的,()是一个空列表,[]是一个空向量。

但是请注意,=比较了列表和向量的内容,它忽略了容器的类型:

代码语言:javascript
复制
(= '("seq07") ["seq07"])           ;; => true
(= '(()) [[]])                     ;; => true

问题中的断言失败是由于actual向量比expected向量具有更少的元素:

代码语言:javascript
复制
(= ['("seq07")] ['("seq07") '()])  ;; => false
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68220522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档