> On Dec 18, 2015, at 4:42 AM, Amir Michail via swift-evolution > <[email protected]> wrote: > > Examples: > > >>> l=[1,2,3,4,5] > >>> l[-1] > 5 > >>> l[-2] > 4 > >>> l[2:4] > [3, 4] > >>> l[2:] > [3, 4, 5] > >>> l[-2:] > [4, 5] > >>> l[:3] > [1, 2, 3] > >>> l[::2] > [1, 3, 5] > >>> l[::] > [1, 2, 3, 4, 5]
Accepting negative indices is problematic for two reasons: it imposes runtime overhead in the index operation to check the sign of the index; also, it masks fencepost errors, since if you do foo[m-n] and n is accidentally greater than m, you'll quietly load the wrong element instead of trapping. I'd prefer something like D's `$-n` syntax for explicitly annotating end-relative indexes. -Joe
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
