Как присвоить значение переменной в функции?

не могу разобраться с тем по какой причине при попытке изменить значение свойства объекта Car указывается, что переменная в функции presaleService в которую я принимаю экземпляр является let и я не могу изменить значение в ней. заранее спасибо за внимание.

protocol Dealership {
    var name: String { get }
    var stockCars: [String] { get set }
    var showroomCars: [String] { get set }
    var cars: [String] { get set }
    func offerAccesories()
    func presaleService()
    func addToShowroom()
    func sellCar()
    var orderCar: Int { get set }
}

extension Dealership {
    func offerAccesories(extras: Car) {
        print("Хотите ли вы покупить допы для своего автомобиля в наличии: \(extras.accessirues)")
    }
    
    func presaleService(factEvent: Car) {
        factEvent.isServised = true
    }

Ответы (1 шт):

Автор решения: Oleg Soloviev

Потому что сущность Car у вас является структурой, а структуры передаются копированием и, соответственно, factEvent получает копию структуры. При этом factEvent является let параметром функции. Чтобы изменить свойства Car, объявите ее классом (class Car {}). Тогда объект Car будет передаваться по ссылке и вы сможете изменять его свойства.

→ Ссылка