Может ли кто-нибудь сказать мне, почему в этом «странном» коде (мне весело с Swift; D) в ленивых функциях runEngine и stopEngine, метод печати никогда не выполняется? (пожалуйста, запустите этот код на детской площадке).Lazy function in Swift
Спасибо!
protocol EngineDelegate {
func engineDidStart()
func engineDidStop()
}
class Engine {
var delegate: EngineDelegate?
lazy var runEngine :() ->() = {
print("Engine has been started")
self.delegate?.engineDidStart()
}
lazy var stopEngine :() ->() = {
print("Engine has been stoped")
self.delegate?.engineDidStop()
}
}
class Car: EngineDelegate {
let engine = Engine()
init() {
engine.delegate = self
}
func engineDidStop() {
print("MyOwnStop")
}
func engineDidStart() {
print("MyOwnStart")
}
}
let car = Car()
car.engine.runEngine()