lessshape是否提供类型类/宏来召唤HList
,其中包含案例类所有参数的默认值?
假设我们有这个案例类:
case class User(name: String, age: Int = 18)
那我想得到一个HList
:
None :: Some(() => 18) :: HNil
答案 0 :(得分:7)
默认参数是通过合成方法实现的。 尝试一下特质。 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