gpt4 book ai didi

Scala Parallel Seq 不符合 Seq

转载 作者:行者123 更新时间:2023-12-05 08:27:34 26 4
gpt4 key购买 nike

我对 Scala 比较陌生,但我想我理解它的类型系统和并行集合,但我无法理解这个错误:

我有一个函数

def myFun(a : Seq[MyType], b : OtherType) : Seq[MyType] = {
val parA = a.par
def update(q : OtherType)(x : MyType) : MyType = x.updated(q)
parA.map(update(b))

我收到一条错误信息

Error:(63, 18) type mismatch;
found : scala.collection.parallel.ParSeq[MyType]
required: Seq[MyType]
parA.map(update(b))
^

如果 ParSeqSeq 的子类型,那为什么它不起作用?

(当我写这篇文章时,我意识到要修复它,我可以对结果调用 .seq 方法,但为什么我必须这样做?IDE 和 .toSeq 之间有什么区别告诉我是多余的,.seq 似乎有效)

最佳答案

我正在查看 docs并且看不到它说 ParSeq extends Seq 的地方,我是不是漏掉了什么?

另外关于问题的第二部分:toSeq 返回一个 ParSeq,seq 返回一个 Seq。明确一点:

val x: ParSeq[Int] = Seq(1,2,3).par
val y: ParSeq[Int] = x.toSeq
val z: Seq[Int] = x.seq

由于 .toSeq 不“​​做任何事情”,您的 IDE 说它是多余的。

关于Scala Parallel Seq 不符合 Seq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38087762/

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