這個問題今天晚上來找我。
我有兩個相同類型的實例化的case類。
case class Foo(a : Option[String], b : Option[String], c : Option[String])
讓我們稱之爲實例化的類A和B.
val a = Foo(a=Some("foo"), b=Some("bar"), c=Some("baz"))
val b = Foo(a=None, b=Some("etch"), c=None)
我想知道如果它能夠爲B在一次操作中通用的方式更新的情況下A類。
val c = b *oper* a // Foo(a=Some("foo"), b=Some("etch"), c=Some("baz"))
參數被設置爲無忽略。理想情況下,該操作也應該是通用的,因此它可以處理任何類型的案例類。
我有一些直覺認爲,通過將該類轉換爲元組/列表並轉換回類,可能會使用Scalaz做到這一點 - 也許使用ApplicativeBuilder?有任何想法嗎?
'A'和'B'不叫類,但實例或對象。 – ziggystar 2012-07-11 10:36:58
代碼有問題。屬性a和c是字符串還是選項[字符串]? – pedrofurla 2012-07-11 12:00:42