gpt4 book ai didi

list - Seq 的使用与 List、Array 和 Vector 的使用相比如何?

转载 作者:行者123 更新时间:2023-12-01 22:23:29 24 4
gpt4 key购买 nike

在 SO,我看到了比较 Array with Seq 的问题, List with SeqVector with well, everything 。但我不明白一件事。我什么时候应该对其中任何一个实际使用 Seq ?我了解何时使用 List、何时使用 Array 以及何时使用 Vector。但是什么时候使用 Seq 而不是上面列出的任何集合是一个好主意呢?为什么我应该使用扩展 Iterabletrait 而不是上面列出的所有具体类?

最佳答案

您通常应该使用Seq作为方法或类的输入参数,一般为序列定义(只是一般,不一定是泛型):

def mySort[T](seq: Seq[T]) = ...
case class Wrapper[T](seq: Seq[T])
implicit class RichSeq[T](seq: Seq[T]) { def mySort = ...}

现在您可以将任何序列(例如 VectorList)传递给 mySort

如果您关心算法复杂性 - 您可以将其专门化为 IndexedSeq (快速随机元素访问)或 LinearSeq (快速内存分配)。无论如何,如果你希望你的功能更多,你应该更喜欢最顶级的类 polymorphic它的输入参数上有,因为 Seq 是所有序列的通用接口(interface)。如果您需要更通用的东西 - 您可以使用 TraversableIterable

关于list - Seq 的使用与 List、Array 和 Vector 的使用相比如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28092265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com