Lots of languages offer something akin to that. If not `[-1]` then something more OO like `.last`. Even the language I wrote supports it. This is why I made the complaint about Go.
> Also slice[0:-1] etc.
In fairness, Go can do that. You just omit the value for where you want the last (or first) element of the slice or array. eg
b := []byte("Hello, World")
world := b[7:]
(this would work with strings too but I'm using a byte to make it clear we're working with slices)edit: just for clarity I mean Go has the syntactic sugar for stating the start or end of a slice - rather than a negative number of elements from the end of the slice. My point being that there is already some syntactic sugar in specifying slices so it's a shame Go doesn't take that further.
I was actually referencing the 0 part and thus saying Go does already have some syntactic sugar when dealing with slices. ie you can do:
slice[5:] // slice[:len(slice)]
but not slice[5:-1] // slice[:len(slice)-1]
Which is a great pity.However I'll update my previous comment to make that clearer because I can totally understand how it reads confusingly.