> On Dec 30, 2015, at 5:19 PM, Kevin Ballard via swift-evolution > <[email protected]> wrote: > > On Wed, Dec 30, 2015, at 03:12 PM, Kevin Wooten via swift-evolution wrote: >>>> >>>> Another possibility I've thought of is defining `defer { val }` to >>>> guarantee that val remains alive until the defer fires on scope exit. That >>>> might let us leave `defer` as the one "guarantee something happens exactly >>>> at scope exit" language construct. >> >> What about this… >> >> defer let val = grabOrCreateSomething() { >> return; >> } >> >> Seems natural once you learn guard. > > Natural? I have no idea what you're expecting that expression to actually do. > What is a "defer let”?
I think the idea is that a local variable declared with a `defer` modifier has its lifetime extended until the scope exits. It is a slightly more compact version of what Joe suggested. But I agree that it has potential for confusion - it reads like it is deferring the initialization of `val` until the scope exits which would be rather pointless. I do like the idea of making the extended lifetime part of the local variable declaration but I’m not sure about how this specific syntax reads. > > -Kevin > > > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
