Arrays Swift数组-将每个项目转换为一个对象,并返回带有转换对象的新数组

Arrays Swift数组-将每个项目转换为一个对象,并返回带有转换对象的新数组,arrays,swift,dictionary,transform,Arrays,Swift,Dictionary,Transform,假设我有一个结构,如: struct Person { var name: String var photo: String } 和使用结构的数组: let persons = [ Person(name: "John", photo: "john.png"), Person(name: "Mike", photo: "mike.png"), Person(name: "Skye", photo: "skye.png") ] 我想在Swift中创建一个

假设我有一个结构,如:

struct Person {
    var name: String
    var photo: String
}
和使用结构的数组:

let persons = [
    Person(name: "John", photo: "john.png"),
    Person(name: "Mike", photo: "mike.png"),
    Person(name: "Skye", photo: "skye.png")
]
我想在Swift中创建一个数组扩展,它是以下的简写方式:

let newPersons = persons.map { person -> Person in
    var temp = person
    temp.photo = "http://server/uploads/\(temp.photo)"
    return temp
}

我不想声明person对象的副本,转换所需字段并在map closure参数中返回新对象。

我认为您可能解决了错误的问题。最好只在
Person
上创建一个computed属性,该属性返回
photoURL:URL
,基于
baseURL.appendingPathComponent(self.photoName)
,如下所示: