> On Feb 22, 2017, at 10:16 AM, Nate Cook via swift-evolution
> <[email protected]> wrote:
>
> Hello all,
>
> I was surprised to find that I can't use an instance member as the default
> value of a method parameter, only constants and the run-time calculated
> #file, #line, etc. Is it possible to remove this limitation?
>
> I'd like to propose that we add an overload of the collection
> index(_:offsetBy:) methods that use the collection's startIndex as a default
> parameter, but we can't provide that without either this feature or an extra
> overload. If the declaration looks like this:
>
> extension Collection {
> func index(_ i: Index = startIndex, offsetBy n: IndexDistance) -> Index {
> // ...
> }
> }
>
> then calling that method with an omitted first parameter would treat it as
> something like this:
>
> extension Collection {
> func index(offsetBy n: IndexDistance) -> Index {
> let i = startIndex
> // ...
> }
> }
>
> Is this just syntactic sugar, or am I missing something that makes this
> harder than it looks? I can see how more complex expressions could be useful
> there, too, and can't find an obvious reason we couldn't use any code that
> could be inserted at the top of the method body.
+1, I didn’t realize we couldn’t do that now.
- Dave Sweeris
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution