gpt4 book ai didi

scala - 调用 toArray 时编译器错误

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

scala> def a[A](b:Seq[A]) = b.toArray
<console>:7: error: could not find implicit value
for evidence parameter of type ClassManifest[A]
def a[A](b:Seq[A]) = b.toArray
^

这里有什么问题?我该如何解决这个问题?

最佳答案

您需要做的是指定可返回类型,这将起作用(对于 scala < 2.8):

def a[A](b:Seq[A]):Array[A] = b.toArray

由于新的集合框架必须进行特殊类型的转换才能处理像集合这样的数组,请参阅 Fighting bit rot第448页,要讲高阶类型,就是 ClassManifest的意思它讲述了类(class)(有一个更宽的 Manifest)。

所以下面的两个例子都是有效的(更多信息在这里 Collections API Explained ):
 def a[A](b:Seq[A])(implicit m:ClassManifest[A]):Array[A] = b.toArray

def a[A:ClassManifest](b:Seq[A]):Array[A] = b.toArray

关于scala - 调用 toArray 时编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8728786/

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