gpt4 book ai didi

类中泛型类型的Scala可变数量

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

我正在使用 scala 和 scalaStorm 进行一个项目,我目前正在使用来自 github ( https://github.com/velvia/ScalaStorm ) 的 velvia 的 scalastorm 库,我正在尝试丰富它。
我想为 Storm 元组添加类型安全性,默认情况下都是 java 对象。
在 Storm 中,有一些称为 bolts 的实体,它们将元组作为输入并输出其他元组。
我想做这样的事情:

class StormBolt[T*][K*]{
}

所以我可以直接写:
class MyBolt[Int, Date, String][Int, String]{
}

我没有找到任何让我以某种方式这样做的东西。
我很欣赏实现此类功能的任何提示!为库添加类型安全不会是一种耻辱!
谢谢

最佳答案

您可以使用简单的泛型类型或使用 shapeless( https://github.com/milessabin/shapeless/wiki/Feature-overview:-shapeless-2.0.0#heterogenous-lists ) 中的 HList

trait StormBolt[T, K] {
}

trait MyBolt extends StormBolt[(Int, Date, String), (Int, String)]

或无形
trait StormBolt[T <: HList, K <: HList] {
}

trait MyBolt extends StormBolt[Int :: Date :: String :: HNil, Int :: String :: HNil] {
}

使用 shapeless,您可以获得许多很酷的功能,您可以查看功能概述,也许您会发现其中一些很有用

关于类中泛型类型的Scala可变数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27585582/

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