gpt4 book ai didi

scala - 如何合并左两个列表?

转载 作者:行者123 更新时间:2023-12-04 02:15:53 25 4
gpt4 key购买 nike

假设我有两个案例类:

case class LineItem(name: String, price:Int, discount:Discount)
case class Discount(amount:Int, reason:String)

我有订单项列表:

L1、L2、L3

和折扣列表:

D1、D2

如何将折扣合并到订单项列表中?

我最初想只是将它们压缩并映射,但这会从压缩列表中删除 L3。

最佳答案

我首先将折扣转换为 Option[Discount] 列表,用 None 填充列表,压缩并映射:

//items: List[LineItem], discounts: List[Discount]
val discOptions = discounts.map(Some(_)).padTo(items.length, None)

items.zip(discOptions) map {
case (item, Some(disc)) => item.copy(discount = disc)
case (item, None) => item
}

关于scala - 如何合并左两个列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33703442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com