Оптимизация строкового массива в массив float3 - PullRequest
0 голосов
/ 04 сентября 2018

Я пытаюсь получить строковое литеральное значение, например

var s: String = "0.9 1.2 4.8 0.4 3.2 7.9"

И преобразовать его в массив float3s, как это

var f: [float3] = [float3(0.9, 1.2, 4.8), float3(0.4, 3.2, 7.9)]

Пока что я написал функцию расширения для строки, которая выглядит следующим образом

extension String {
    func toFloat3Array()->[float3]{
        var result = [float3]()

        let pointArray: [Float] = self.split(separator: Character(" ")).map { Float($0) ?? 0.0 }
        for var i in 0..<pointArray.count - 2 {
            result.append(float3(pointArray[i++], pointArray[i++], pointArray[i++]))
        }

        return result
    }
}

* Примечание: я создал перегрузку оператора для i (++), которая возвращает значение, а затем увеличивает его, как вы видели бы в java.

Это прекрасно работает, но я надеюсь, что есть лучший способ отобразить значения из массива строк в массив float3 :) Спасибо!

...