我是Clojure的新手。如果这是一个愚蠢的问题,请道歉!
每次我不关心项目的顺序时,我应该使用集合而不是向量或列表吗?在没有必要订购时,在这三者之间做出决定的共同标准是什么?
答案 0 :(得分:20)
这实际上取决于您将如何使用这些物品。
在实践中,我看到的大部分处理都涉及将数据转换为seq
并进行处理,因此列表和向量之间的区别通常是个人品味的问题。
答案 1 :(得分:9)
一般情况下,当你的主要关注点是“这个群体中的这个东西吗?”时,你想要一个集合。除了不保留顺序之外,集合也只保持给定值一次。因此,如果您关心值的精确放置,矢量就更符合您的要求。如果您主要关心会员资格的测试,那么更合适。
答案 2 :(得分:3)
是的,使用一套。除非你有非常好的理由选择其他东西(性能,内存使用......),否则这个套装是正确的选择。
请记住,编程主要是与代码的人类读者进行通信,而不是与计算机进行通信。通过使用集合,您可以完全清楚元素的顺序是无关紧要的(并且您不期望重复的值),帮助读者理解您的意图和您自己的心理思维。