我将尽可能简明清晰地将一个类型为
List<Triple<String, String, String>>
的列表转换为Triple<List<String>, List<String>, List<String>>
三元组。请考虑以下示例,如果执行转换的方法名为turnOver
,则期望输出:val matches = listOf(
Triple("a", "1", "foo"),
Triple("b", "2", "bar"),
Triple("c", "3", "baz"),
Triple("d", "4", "qux")
)
val expected = Triple(
listOf("a", "b", "c", "d"),
listOf("1", "2", "3", "4"),
listOf("foo", "bar", "baz", "qux")
)
matches.turnOver() == expected // true
如何编写简洁、清晰、且可能具有功能性的 turnOver
函数?
可以使用 Arrow-Kt,我已将其作为项目依赖项。
List<Pair>
/Pair<List>
。我想要一个通用版本,可能适用于 n 元组。@alexey-romanov 下面提出了 Arrow-Kt 中的Traverse
,我要看看它是否适合。 - Danilo Pianini