私はスカラの初心者です。それがアサートテストを通過するようにどのように私はこの機能getFilledOrderを()書きください:スカラーの地図からの1対多の関係
case class Order(id:String, total:Double, lineItem:Seq[LineItem])
case class LineItem(id:String, productId:String)
val order = Order("1", 10.0, Nil)
val orderLineItemMap = Map(order->List(LineItem("1", "prod1"),LineItem("2", "prod2")))
val filledOrder = getFilledOrder(orderLineItemMap)
assert(filledOrder == Order("1", 10.0, List(LineItem("1", "prod1"),LineItem("2", "prod2"))))
私はこのような何かを記述しようとしています:
def getFilledOrder(orderLineItemMap : Map[Order, List[LineItem]]):Order = {
orderLineItemMap.keys.foreach(order=> {
val filledOrder = Order(order.id, order.total, orderLineItemMap.get(order).get)
println(filledOrder)
})
}
機能がないので、これはコンパイルされません。注文を返すforeachループからfilledOrderをどのように取得するのですか。前もって感謝します。
あなたの例は、あなたの機能が一般的に何をしたいのかを知ることが困難である場合を除いて、特にそうです。マップに2つのキーがあるとします。 idと結果の順序の合計はどうなるでしょうか? –
申し訳ありません地図は常に1つの注文オブジェクトキーしか持たないことを明確にすべきでした。 –