gpt4 book ai didi

scala - Shapeless:有没有办法从案例类或元组中获取 Hlist 类型

转载 作者:行者123 更新时间:2023-12-03 22:27:52 26 4
gpt4 key购买 nike

我对无形完全陌生。我从列表中创建了一个案例类,如下所示:

val list = Seq(Some(1), Some(1.0), ...)
val y =
list
.toHList[Option[Int]::Option[Double]::Option[Int]::Option[Double]::Option[Double]::Option[Double]::Option[Double]::Option[Double]::Option[Double]::Option[Double]::Option[Double]::Option[Double]::Option[Double]::Option[Double]::HNil]

val z = y.get.tupled
val aa = YieldVariables.tupled(z)

它运行良好,但我想知道是否有办法不在 toHList[Here] 中写入所有这些类型。部分。

所以我想知道是否有类似 list.toHList[find the type yourself] 的东西或 list.getTypesForHlist还是 MyCaseClass.getTypesForHlist结果为 Option[Int]::Option[Double]...存在。

最佳答案

对于 case 类(和元组,这些也是 case 类!),使用 Generic :

case class A(i: Int, s: String)
shapeless.Generic[A].to(A(1, "")) // Int :: String :: HNil

这在 Seq 上是不可能的.实际上,一旦您调用了构造函数,从类型的角度来看,有关您传递给该构造函数的元素数量的信息就消失了。无形也有 SingletonProductArgs : 一个类似 varargs 的语法的宏返回一个 HList而不是 Seq .

关于scala - Shapeless:有没有办法从案例类或元组中获取 Hlist 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43677028/

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