Имеется список двумерных координат , которые представляют собой класс данных
data class Point(val x: Int, val y:Int)
val points: List<Point>
и метод TornadoFX (JavaFX in Kotlin), который принимает уплощенный массив [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
распространяется с этим *
) или просто лучший способ сделать это преобразование?