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

Zach Waldowski zach at waldowski.me
Tue Jun 27 13:08:54 CDT 2017


Big +1.

Using `!` is widely seen as a smell. However, the need for it still
arises; they are preconditions, of a sort. It has become prevalent in my
teams’ codebases to do “guard else preconditionFailure”.
I like `!!` over something like `?!`; it follows the pattern that almost
every `?` in the language has an equivalent `!`.
The implementation details are ultimately not relevant to me. I’m a fan
of `Never` being a bottom type for more reasons than just this. I also
see no reason why operator funcs couldn’t accept file and line as extra
arguments on the rhs.
Best,
  Zachary Waldowski
  zach at waldowski.me

On Tue, Jun 27, 2017, at 01:16 PM, Erica Sadun via swift-evolution wrote:> Using an operator to provide feedback on the context of a failed
> unwrap has become a commonly implemented approach in the Swift
> developer Community. What are your thoughts about adopting this widely-
> used operator into the standard library?> 
> guard !lastItem.isEmpty else { return }
> let lastItem = array.last !! "Array must be non-empty"
> 
> Details here:
> https://gist.github.com/erica/423e4b1c63b95c4c90338cdff4939a9b> 
> Thank you for your thoughtful feedback, -- E
> 
> _________________________________________________
> 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/20170627/a9ecce08/attachment.html>


More information about the swift-evolution mailing list