It's not directly related to property behaviors. It was a bug that only worked with ImplicitlyUnwrappedOptional properties; we patched the type checker bug that led to it being allowed and didn't even notice until someone brought it up (SR-5172 <https://bugs.swift.org/browse/SR-5172>).
It would be possible to introduce this as an actual language feature even without the full property behaviors model, but we wouldn't want to just spell it 'lazy'. Maybe 'lazy_resettable' or something. And even though I say this, it's probably unlikely that such a proposal would get through swift-evolution in the Swift 5 timeframe. Meanwhile, it's always possible to implement it by hand, though I can see how that'd be annoying if you were relying on this and previously got it with a single '!'. class LazyResettableTest { private func fooInitial() -> String { return "initial value" } private var fooStorage: String? var foo: String! { get { if fooStorage == nil { fooStorage = fooInitial() } return fooStorage } set { fooStorage = newValue } } } Jordan > On Oct 19, 2017, at 19:59, David Sweeris via swift-users > <swift-users@swift.org> wrote: > > I don't know. IIRC (big if), though, there was talk of adding support for > "property behaviors"(?). Resetting lazy vars probably would've been one of > them, and if so, it probably got pulled so that we wouldn't risk breaking > source compatibility later by adding a consistent syntax for other behaviors. > I think. I wish I could remember who'd brought up the idea... they'd probably > know straight away if that's what happened. > > - Dave Sweeris > >> On Oct 19, 2017, at 5:40 PM, Rick Mann via swift-users >> <swift-users@swift.org> wrote: >> >> Googling for the answer, it seemed some versions of Swift supported setting >> a lazy var property to nil, such that the next time it's accessed, the >> initializer would be run again. >> >> But I just tried this in a playground in Swift 4 and it doesn't work. >> >> It sure seems to me like it should work. What's the reasoning for the >> current behavior? >> >> -- >> Rick Mann >> rm...@latencyzero.com >> >> >> _______________________________________________ >> swift-users mailing list >> swift-users@swift.org >> https://lists.swift.org/mailman/listinfo/swift-users > > _______________________________________________ > swift-users mailing list > swift-users@swift.org > https://lists.swift.org/mailman/listinfo/swift-users
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users