我使用以下示例:
拉平元组。但是,我现在已经意识到,案例类也被扁平化了。我有什么办法可以确保仅将元组展平吗?
TIA
答案 0 :(得分:3)
您可能需要隐式IsTuple
:
object flatten extends LowPriorityFlatten {
implicit def caseTuple[P <: Product : IsTuple]
(implicit lfm: Lazy[FlatMapper[P, flatten.type]]) =
at[P](lfm.value(_))
}
测试:
val v4 = (Bar(Foo("a")), (true, 2.0, "foo"))
val f4 = flatten(v4)
typed[(Bar, Boolean, Double, String)](f4)