Is there a way to sum multiple fields of a data cl...
# announcements
m
Is there a way to sum multiple fields of a data class into a new instance? E.g.
Copy code
private data class Quantity(val quantity: BigDecimal, val pendingQuantity: BigDecimal)
fun main(){
    val quantities = listOf(Quantity(BigDecimal.ONE, BigDecimal.ZERO), Quantity(BigDecimal.ZERO, BigDecimal.TEN), Quantity(BigDecimal.ONE, BigDecimal.ONE))
    println(quantities.sum()) //expecting Quantity(2, 11)
}
Obviously
.sum()
doesn’t work, just an example of what i’d like it to look like
Oh
reduce
, duh.
Copy code
fun main(){
    val quantities = listOf(Quantity(BigDecimal.ONE, BigDecimal.ZERO), Quantity(BigDecimal.ZERO, BigDecimal.TEN), Quantity(BigDecimal.ONE, BigDecimal.ONE))
    println(quantities.reduce { sum, element -> Quantity(sum.quantity + element.quantity, sum.pendingQuantity + element.pendingQuantity) }) //expecting Quantity(2, 11)
}
d
Thanks for sharing the knowledge
h
or implement
plus
directly for the
Quantity
: https://pl.kotl.in/rTynXXmjd
👍 1