[swift-evolution] [Pitch/Reality Check] Allow instance members as parameter default values

Ben Cohen ben_cohen at apple.com
Wed Feb 22 18:32:08 CST 2017


> On Feb 22, 2017, at 10:42 AM, Nate Cook via swift-evolution <swift-evolution at swift.org> wrote:
> 
> Oops, left out that there's this horrifying way of writing it right now:
> 
> extension Collection {
>     func index(_ i: Index! = nil, offsetBy n: IndexDistance) -> Index {
>         let i = i ?? startIndex
>         // ...
>     }
> }
> 
> Nobody wants that.
> 

Oh I don’t think it’s all that bad! It also doesn’t need to be an IUO, since you’re unwrapping it immediately into another variable no matter what.

This also gives you the flexibility to write this:

extension Collection {
    func index(_ i: Index? = nil, offsetBy n: IndexDistance) -> Index {
        let i = i ?? (n < 0 ? endIndex : startIndex)
        // ...
    }
}

> _______________________________________________
> 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/20170222/3a813025/attachment.html>


More information about the swift-evolution mailing list