Dmitri pointed out a few posts ago that Swift already has this.
let opInt: Int? = nil
opInt.map {$0.toIntMax()} //Evaluates to nil

Are you talking about something different?

- Dave Sweeris

> On Jun 23, 2016, at 2:04 PM, Charlie Monroe via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> Sure, the exact syntax is a matter of discussion, I just wasn't that much of 
> favor of the very short
> 
> doSomething(with: myOptional?)
> 
> - it looks like a great idea, making the code really short
> - on the other hand the question mark is next to the variable, but the 
> method's execution is optional - in that sense something like doSomething(?: 
> myOptional)(with: myOptional) makes more sense, declaring explicitely what 
> optionals does the execution depend on.
> - nevertheless, in the interest of clarity and readability of the code, I'm 
> still in favor of the original proposal, which requires you to either use if 
> or guard.
> 
>> On Jun 23, 2016, at 8:57 PM, Tim Vermeulen <tvermeu...@me.com> wrote:
>> 
>> But ! still suggests force unwrapping, while ? suggests safe unwrapping. Why 
>> not use a question mark?
>> 
>>> It was in the previous proposal and suggested that you are not trying to 
>>> shadow the previous variable, but trying to unwrap it - and it acts as 
>>> unwrapped from there on.
>>> 
>>> 
>>>> On Jun 23, 2016, at 8:52 PM, Tim Vermeulen<tvermeu...@me.com>wrote:
>>>> 
>>>> 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@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
>>>>>>> 
>>>>>>> 
>>>>>>> ja...@supmenow.com(mailto:ja...@supmenow.com)⎥supmenow.com(http://supmenow.com)
>>>>>>> 
>>>>>>> 
>>>>>>> Sup
>>>>>>> 
>>>>>>> 
>>>>>>> Runway East
>>>>>>> 
>>>>>>> 
>>>>>>> 10 Finsbury Square
>>>>>>> 
>>>>>>> 
>>>>>>> London
>>>>>>> 
>>>>>>> 
>>>>>>> EC2A 1AF
>>>>>> _______________________________________________
>>>>>> swift-evolution mailing list
>>>>>> swift-evolution@swift.org
>>>>>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>> 
>>> 
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to