gpt4 book ai didi

Kotlin flatmap 解压数据类列表

转载 作者:行者123 更新时间:2023-12-02 12:46:24 26 4
gpt4 key购买 nike

给定作为数据类的二维坐标列表

data class Point(val x: Int, val y:Int)
val points: List<Point>

和 TornadoFX(Kotlin 中的 JavaFX)方法,它采用 [x,y,x2,y2...] 的扁平数组:
polyline(vararg points: kotlin.Number)

我只是写了以下内容,然后感觉这不可能是全部
fun List<Point>.asPolyline() = this.flatMap { p -> listOf(p.component1(), p.component2()) }

polyline(*points.asPolyline().toTypedArray())

有没有办法扩展数据类(类似于 Array* 一起传播的方式)或者只是进行这种转换的更好方法?

最佳答案

这是一种以最少的分配来做到这一点的方法:

fun List<Point>.toFlatArray() = 
Array(size * 2) { with (this[it / 2]) { if (it % 2 == 0) x else y } }

关于Kotlin flatmap 解压数据类列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59120565/

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