PointF из List превратится в 2 последовательных элемента x, y в FloatArray)?
Думаю только циклом пройтись 🤔
А как они должны превратиться 🤔
Ну типа Point это объект
Было PointF -> стало x, y arrayXY = pointList.flatMap { listOf(it.x, it.y) }.toFloatArray() Так что ли? Не нравится мне listOf внутри...
Наверное тут только свой экстеншн писать в котором for проходит по List<Point> и по очереди добавляет его поля во FloatArray
Так каждый может :) Хотелось бы чего-то идиоматичного.
Ну рефлексии щепотку добавь, чтоб распарсить поля у любого Т. Мне кажется вот так просто без колдунства идеоматичного способа нет
А что такое поидиоматичней, просветишь?
От слова "идиома". Особенность речи, свойственная языку. Примерно то же, что и паттерн :) У Котлина есть идиомы: https://kotlinlang.org/docs/idioms.html
Ну так, в том конкретном случае, идиоматичнее приравнивается "как бы усложить то")
Наоборот. Вопрос был как лучше/проще мапить список PointF в одномерный FloatArray x,y.
flatMap как раз идеален)
Как это сделать? array = pointList.flatMap { it.x, it.y -> ??? }
да вот, я предложил с фором решать такую проблему)
Через for каждый может :)
Ну главная проблема, что все это субъективно. Вот сделаешь разные реализации двух разных людей спросишь один скажет одна идиоматична, другой другая. Можно таким заниматься, но думаю если совсем делать нечего. Если про конкретно твою задачу, то сначала в list, а потом в массив это как-то так себе выглядит. Я бы просто в for положил в массив, нагляднее
Обсуждают сегодня