scala - 展平密封的案例类层次结构

标签 scala shapeless

假设我有一个密封的案例类层次结构,如下所示:

sealed trait Expr
case class Const(val: Double) extends Expr
case class Plus(x: Expr, y: Expr) extends Expr
case class Times(x: Expr, y: Expr) extends Expr
  • 是否可以自动转换表达式,例如Plus(1,Plus(2,3))变成 HList 的 HList?
  • 即使在某些函数内部,转换也能正常工作 f(e: Expr) ,即当编译时不知道 e 的具体结构时?
  • 最佳答案

    事实证明,这已经在 SO here 上得到了回答。并且有一个相应的 example在 shapeless-2.1.0-SNAPSHOT 的 Shapeless 分布中。

    关于scala - 展平密封的案例类层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34359314/

    相关文章:

    scala - HList的类型级约束,提取函数域

    scala - 使用类型参数进行类型转换

    Scala 调度员- worker Actor 模式

    scala - 如何从 scala Spark-shell Array[String] 读取字符串

    scala - 使用 Shapeless Polyfil 在记录上进行一般映射

    scala - 禁止生成申请案例类

    scala - 异构映射,编译时的依赖类型

    java - 用于编写 Tensorflow TFRecords 数据文件的纯 Java/Scala 代码

    scala - 如何使用 `asRight` 创建带有猫的 Either 实例

    java - Spring 数据与 Scala