gpt4 book ai didi

Scala 类型错误 - 不带类型参数,应为 : one

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

各位 Scala 开发人员大家好,

有人可以向我解释一下以下代码中的类型推断有什么问题以及如何修复它。

以下代码是使用 Scala 2.10.2 的 Play 2.2 的自定义操作

class Test {

trait Entity

class NodeRequest[A,K <:Entity](val entity: K,
val request: Request[A])
extends WrappedRequest[A](request)

def LocateResource[A,K](itemId: Int, v: List[K],
forceOwners:Boolean = true) =
new ActionBuilder[NodeRequest[A,K]]() {
def invokeBlock[A](request: Request[A],
block: (NodeRequest[A,K]) => Future[SimpleResult]) = {
Future.successful(Ok)
}
}

[error] Test.this.NodeRequest[A,K] takes no type parameters, expected: one
[error] def LocateResource[A,K](itemId: Int, v: List[K] , forceOwners:Boolean = true) = new ActionBuilder[NodeRequest[A,K]]() {
[error] ^

最佳答案

错误消息有点令人困惑 - 它实际上指的是 ActionBuilder 的类型参数。您需要的是类型函数(或更具体地说,部分类型应用程序)。这在 Scala 中有点棘手。 Scala 2.8 语言引用实际上说你不能这样做,但现在已经不再是这样了。试试这个:

def LocateResource[A,K](itemId: Int, v: List[K],
forceOwners:Boolean = true) =
new ActionBuilder[({type λ[B] = NodeRequest[B,K]})#λ]() {

关于Scala 类型错误 - 不带类型参数,应为 : one,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19343159/

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