【发布时间】:2021-05-03 10:22:48
【问题描述】:
我知道我做错了什么,但我不知道是什么..
我只想在这里添加一些pet 到我的Array<Pet>
我在这里做错了什么?
错误是
不能对不可变值使用变异成员:函数调用返回不可变值
import UIKit
struct Person {
let id = UUID()
let name: String
var pets: [String]
}
final class City {
let people = [Person]()
func addPetFor(id: UUID, newPets: [String]) {
self.people.findPerson(by: id).pets.append(contentsOf: newPets) //<-- error Cannot use mutating member on immutable value: function call returns immutable value
}
}
extension Array where Element == Person {
func findPerson(by id: UUID) -> Person {
let foundPerson = self.first { person in
person.id == id
}
return foundPerson!
}
}
【问题讨论】: