sách gpt4 ai đã đi

泛型类型的 Scala 组合

In lại 作者:行者123 更新时间:2023-12-03 08:54:22 27 4
mua khóa gpt4 Nike

我有一个复杂的泛型类型用例,已在下面进行了简化

trait A
class AB extends A{
val v = 10
}

trait X[T<:A]{
def request: T
}

class XY extends X[AB]{
def request = new AB()
}
class Test extends App{

/**
* X[A]
* X[AB]
* XY[A]
* XY[AB]
*/
def test[C<:A, D <: X[C]](t:Int)(input: D): Unit ={
print(input.getClass.getName)
}
implicit val req = new XY()
test(2)(req)

}

测试方法应支持注释部分中定义的类型场景。我收到以下编译错误。

Error:(33, 7) inferred type arguments [XY] do not conform to method test's type parameter bounds [D <: X[Nothing]] test(2)(req)

这在语法上合法吗?提前致谢。

1 Câu trả lời

编译器无法推断 C 的类型分两步,定义如下。

因此,要么让编译器一步完成,同时使用 DChiện hữu đầu vào 的定义中论据:

def test[C <: A, D <: X[C]](t: Int)(input: D with X[C]): Unit

或者有 D <: X[C] 的隐含证据,这将帮助编译器推断 C分两步:

def test[C <: A, D <: X[_]](t: Int)(input: D)(implicit ev: D <:< X[C]): Unit

关于泛型类型的 Scala 组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56790797/

27 4 0
Bài viết được đề xuất: angular - 类型 'result' 上不存在属性 'EventTarget'
Bài viết được đề xuất: javascript - jQuery AJAX失败功能-页面导航错误
Bài viết được đề xuất: php - 输入错误内联
Bài viết được đề xuất: 在 Shiny 的应用程序中异步渲染绘图
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com