【发布时间】:2018-11-23 21:31:30
【问题描述】:
shapeless 是否提供了一个类型类/宏来调用 HList,其中包含案例类的所有参数的默认值?
假设我们有这个案例类:
case class User(name: String, age: Int = 18)
那我想得到这样的HList:
None :: Some(() => 18) :: HNil
【问题讨论】:
shapeless 是否提供了一个类型类/宏来调用 HList,其中包含案例类的所有参数的默认值?
假设我们有这个案例类:
case class User(name: String, age: Int = 18)
那我想得到这样的HList:
None :: Some(() => 18) :: HNil
【问题讨论】:
默认参数是通过合成方法实现的。 试试看特质。 https://github.com/milessabin/shapeless/blob/master/core/src/main/scala/shapeless/default.scala
import shapeless.Default
case class User(name: String, age: Int = 18)
val d = Default[User]
println(d())
输出:
None :: Some(18) :: HNil
【讨论】: