[swift-evolution] [Pitch] Introducing the "Unwrap or Die" operator to the standard library

Erica Sadun erica at ericasadun.com
Wed Jun 28 20:18:28 CDT 2017


On Jun 28, 2017, at 6:43 PM, Alan Westbrook via swift-evolution <swift-evolution at swift.org> wrote:
> 
> 
>> On Jun 28, 2017, at 5:27 PM, Xiaodi Wu via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>> 
>> In the initial example, repeated here in largely identical form, the desired comment is "array must be non-empty." In what way does that provide more information than a bare `!`?
> 
> I’m going to second this sentiment with the feeling that the message is seemingly redundant. It feels akin to the comment in this line of code:
> 
>     let value = 1 // This value is set to 1
> 
> On an error, one gets the trap with the optional unwrapped message, and goes to the code where they see what is being forced by assumption.
> 
> Does the message spelling out the code in natural language help?
> 
> Alan

I have replied to another email but will repeat the point here: The proposed `!!` operator differs from the direct use of `!` in that it explains a fact known to hold true, allowing the lhs to safely unwrap. 

The alternatives are:

* forced unwrap -- comments do not transfer to runtime, which leads coders to use:
* using guard with fatalError -- the !! operator provides an elegant sugared shortcut for this common code

-- E


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170628/46693030/attachment.html>


More information about the swift-evolution mailing list