是否有原因(性能、内存、类型系统)为什么 Tuple 不是 HList 并且 Function 不是从 HList 到某个值的映射?
问问题
196 次
2 回答
7
性能和内存兼而有之。元组可以O(1)
访问它们的元素;正如通常构造的那样,HList
是一个列表,因此具有O(n)
. 此外,元组需要内存来存储一个n
引用其他对象的额外对象,而HList
(作为列表)每个需要一个对象(加上一个next
指针)。由于一个对象的开销大约是两个引用,这会将n+2
内存使用量转化为4n+2
. 对于核心语言结构来说并不是那么棒。
于 2013-01-24T12:05:12.550 回答
2
扩展AnyVal的HArray 可能具有与 TupleX 类相当的性能和内存要求。唯一的开销是数组长度和数组索引边界检查。
于 2013-01-24T12:25:01.257 回答