[swift-evolution] Shorthand unwrap proposal

Tim Vermeulen tvermeulen at me.com
Thu Jun 23 13:52:54 CDT 2016


Why with the exclamation mark? It suggests you’re force unwrapping something.

> > On Jun 23, 2016, at 8:45 PM, Tim Vermeulen via swift-evolution<swift-evolution at swift.org>wrote:
> > 
> > I would love to be able to do something like
> > 
> > doSomething(with: myOptional?)
> This actually looks good to me, though if I were a newcomer to the language, it would be really cryptic.
> 
> In case the function returned any value, it could become an optional, just like with try?...
> 
> I still, however, prefer the original proposal of if let myOptional! { doSomething(myOptional) }...
> 
> > 
> > which would be equivalent to
> > 
> > if let myValue = myOptional {
> > doSomething(with: myValue)
> > }
> > 
> > But it’s been discussed here before, and I don’t think people were very enthusiastic about it.
> > 
> > > I was wondering if people would be open to adding an unwrap method to the Optional type,I already have a method like this which shortens code for me.
> > > 
> > > So this:
> > > 
> > > let myReallyLongOptionalName: String? = "Hey"
> > > 
> > > if let string = myReallyLongOptionalName {
> > > doSomethingWith(string)
> > > }
> > > 
> > > Could become"
> > > 
> > > let myReallyLongOptionalName: String? = "Hey"
> > > 
> > > myReallyLongOptionalName.unwrap {
> > > doSomethingWith($0)
> > > }
> > > 
> > > The block would only be fired if myReallyLongOptionalName has a value.
> > > 
> > > 
> > > ___________________________________
> > > 
> > > 
> > > James⎥Head of Trolls
> > > 
> > > 
> > > james at supmenow.com(mailto:james at supmenow.com)⎥supmenow.com(http://supmenow.com)
> > > 
> > > 
> > > Sup
> > > 
> > > 
> > > Runway East
> > > 
> > > 
> > > 10 Finsbury Square
> > > 
> > > 
> > > London
> > > 
> > > 
> > > EC2A 1AF
> > _______________________________________________
> > swift-evolution mailing list
> > swift-evolution at swift.org
> > https://lists.swift.org/mailman/listinfo/swift-evolution
> 
> 
> 


More information about the swift-evolution mailing list