gpt4 book ai didi

scala - 将产品限制为 Scala 中的值类型

转载 作者:行者123 更新时间:2023-12-04 02:53:35 25 4
gpt4 key购买 nike

在 scala 中,我有一个类的构造函数,该类采用产品列表。我正在使用产品,因为我希望列表中的项目都有一定的长度。有没有办法对产品也有类型限制?例如,我希望产品中的每一项都是 AnyVal。

我认为这是不可能的。有什么好的选择吗?我可以有一个 Vector[AnyVal] 列表,然后在构造函数中检查每个向量的长度,但我更希望长度由类型强制执行。

最佳答案

你应该使用 shapeless .

例如,

trait T
class A extends T
class Q[X <: T, N <: shapeless.Nat](xs: shapeless.Sized[Seq[Int],N]) {}
new Q(shapeless.Sized(new A, new A))

会做你想做的事(并将类型限制为 T 的子类--AnyVal 也可以)。

关于scala - 将产品限制为 Scala 中的值类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17125161/

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