> On Dec 30, 2015, at 4:23 PM, Matthew Johnson via swift-evolution > <[email protected]> wrote: > > >> On Dec 30, 2015, at 5:19 PM, Kevin Ballard via swift-evolution >> <[email protected] <mailto:[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. >
Given our discussion that’s definitely the gist of it, but I do stand corrected. I guess I meant the syntax felt “familiar” to guard, but I'd agree upon reflection it doesn’t read well. > 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] <mailto:[email protected]> >> https://lists.swift.org/mailman/listinfo/swift-evolution > > > _______________________________________________ > 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
