有时需要从小集合中创建元组(例如,烫伤框架).
def toTuple(list:List[Any]):scala.Product = ...
Run Code Online (Sandbox Code Playgroud) 我有两个相同类型的实例化案例类.
case class Foo(x : Option[String], y : Option[String], z : Option[String])
Run Code Online (Sandbox Code Playgroud)
让我们调用实例化的类A和B.
val a = Foo(x=Some("foo"), y=Some("bar"), z=Some("baz"))
val b = Foo(x=None, y=Some("etch"), z=None)
Run Code Online (Sandbox Code Playgroud)
我想知道是否可以通过一般操作在单个操作中用B更新案例类A.
val c = b *oper* a // produces Foo(x=Some("foo"), y=Some("etch"), z=Some("baz"))
Run Code Online (Sandbox Code Playgroud)
参数设置为无忽略.理想情况下,操作也应该是通用的,因此它可以作用于任何类型的案例类.
我有一些直觉,可以通过先将类转换为元组/列表并在操作完成后转换回类来使用Scalaz来实现这一点 - 也许使用ApplicativeBuilder?我是否以正确的方式思考这个问题?有任何想法吗?