> On Sep 29, 2017, at 1:23 PM, Taylor Swift <[email protected]> wrote:
>
> Instead of
>
> buf.intialize(at: i, from: source)
>
> We want to force a more obvious idiom:
>
> buf[i..<n].intialize(from: source)
>
>
> The problem with subscript notation is we currently get the n argument from
> the source argument. So what would really have to be written is
>
> buf[i ..< i + source.count].initialize(from: source)
>
> which is a lot more ugly and redundant. One option could be to decouple the
> count parameter from the length of the source buffer, but that opens up the
> whole can of worms in which length do we use? What happens if n - i is less
> than or longer than source.count? If we enforce the precondition that
> source.count == n - i, then this syntax seems horribly redundant.
Sorry, a better analogy would have been:
buf[i...].intialize(from: source)
Whether you specify the slice’s end point depends on whether you want to
completely initialize that slice or whether you’re just filling up as much of
the buffer as you can. It also depends on whether `source` is also a buffer (of
known size) or some arbitrary Sequence.
Otherwise, point taken.
-Andy
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution