Как присвоить значение переменной в функции?
не могу разобраться с тем по какой причине при попытке изменить значение свойства объекта 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 будет передаваться по ссылке и вы сможете изменять его свойства.