[swift-evolution] Shorthand unwrap proposal
L. Mihalkovic
laurent.mihalkovic at gmail.com
Thu Jun 23 14:04:48 CDT 2016
Regards
(From mobile)
> On Jun 23, 2016, at 8:51 PM, Charlie Monroe via swift-evolution <swift-evolution at swift.org> wrote:
>
>
>> 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) }...
>
func doSomething<T> (with: t:T?, h: T -> ()) {
if let t = self as? T { h(t) }
}
extension Optional {
func unwrap<T> (_ h: T -> ()) {
if let t = self as? T { h(t) }
}
}
Var s2:Sting?
s2.unwrap { (str:String) in
print(":)")
}
doSomething(with:s2) { //same as above}
Nothing happens in both cases
>>
>> 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
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160623/d720a12a/attachment.html>
More information about the swift-evolution
mailing list