Я пытаюсь получить строковое литеральное значение, например
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 :) Спасибо!