我需要變異以下數組中:如何變異值的陣列
struct Person {
var name: String
var age = 0
}
func showPersonArray() -> [Person] {
var dataArray = [Person]()
dataArray.append(Person(name: "Sarah_Yayvo", age: 29))
dataArray.append(Person(name: "Shanda_Lear", age: 45))
dataArray.append(Person(name: "Heidi_Clare", age: 45))
return dataArray
}
我怎麼可能 - 鍵分裂「名」成兩個鍵:「給定名稱」和「familyName」。 一些不錯的人給了我在此之前代碼:
let arraySeparated1 = dataArray.map { $0.substring(to: $0.range(of: "_")!.lowerBound) }
let arraySeparated2 = dataArray.map { $0.substring(from: $0.range(of: "_")!.upperBound) }
是否有可能使結構內的突變? showPersonArray()函數僅用於演示和測試。 也許有與目標結構的工作,這樣的方式:
struct Persontarget {
var familyname: String
var givenName: String
var age = 0
}
struct Person: Array -> [Persontarget] {
var name: String
var age = 0
// Here the split/mutating code
return [PersonWithTwoNames]
}
或用字符串擴展。可能我的問題聽起來很新奇,但我想整個一天... 謝謝大家!
您應該使用數組文字而不是重複'.append'調用。它更短,更簡單(請參閱我的回答) – Alexander