什么是Tuple?元组与列表与向量



你能给我简要介绍一下Tuple吗?什么时候在ListVector上使用它?

元组通常通过关联数据结构(如映射{:name "david" :age 35}或记录)在Clojure中表示。

矢量["david" 35]提供了快速的位置访问(= 35 (nth ["david" 35] 1)),并且您可以存储不同的类型。

列表("david" 35)("david" "justin" "david")提供从头开始的快速访问和快进遍历。虽然它可以包含不同的类型,但最常见的情况是,它以确定的顺序包含单个类型,可能包含重复的类型。与集合#{"david" "justin"}形成对比,该集合不包含重复项并且针对检查成员资格/存在性进行了优化。

排序集(sorted-set)和映射(sorted-map)使用比较器来维持对象的顺序。

查看4clojure和clojuredocs.org。祝你好运!

当您要在数据结构中执行更多插入/删除操作时,您应该使用List。当在数据结构中访问变量时,经常使用向量。

元组是将不同类型的元素组合在一个对象中的对象,就像成对对象对元素所做的那样,但对任何数量的元素都是通用的。从概念上讲,它们类似于普通的旧数据结构(类C结构),但没有命名的数据成员,而是按元组中的顺序访问其元素。

最新更新