我有一个(简化的)表结构,定义如下:
1 * * * * python /home/myuser/Desktop/myfile.py
我现在要计算该网格中每一列的总数,即,需要累积每一行的第data class Column<T>(val name: String, val value: T)
data class Row(val data: List<Column<*>>)
data class Grid(val rows: List<Row>)
个元素。
答案 0 :(得分:2)
我的解决方案如下所示。我只是SELECT * FROM accounts where type like '%3%'
数据,然后按列名对列值进行分组,然后将其flatMap
归为相应的总和。
fold
答案 1 :(得分:1)
我无法提出更好的解决方案。我认为您的确很好,但是我建议您在语法上进行一些改进。
when
,如果仅测试一种特定类型,请使用安全强制转换运算符(as?
),安全呼叫运算符(?
)和elvis运算符(:?
。private fun calculateTotals(data: GridData) = data.rows
.flatMap(RowData::data) // 1
.groupingBy(ColumnsData<*>::column) // 1
.fold(0.0) { accumulator, (_, value) -> // 2
accumulator + ((value as? Number)?.toDouble() ?: 0.0) // 3
}