2
Scalaで2つのリストをペアにしようとすると、一致しないペアをデフォルト値に置き換える必要があります。 。不足している長さのリストと不一致のデフォルト値のマージ
List((a、a)、(b、empty)、(c、c))を作成するにはどうすればよいですか?
case class Test(id: Option[Int] = None)
val empty = Test()
val a = Test(Some(1))
val b = Test(Some(2))
val c = Test(Some(3))
val cache = List(a,b,c)
val delta = List(a,c)
//Trial 1
val newCache1 = cache.zipAll(delta,empty,empty)
//Tial 2
val newCache2 = for {
c <- cache
d <- delta
if c.id == d.id
} yield (c,d)
//Tial 3
val newCache3 = for {
c <- cache
d <- delta
} yield if (c.id == d.id) (c,d) else (c,empty)
重複はありますか?リストは注文されていますか?あなたは地図にデルタを入れ、その中からペアを選ぶことができます。 – Stephen