I’m currently writing a CLI tool that handles a specific JSON data format. And I also want to give the user to get a slice of the item array of the file. It’s a slice in form of --slice START:END
through commandline options. So in example --slice 1:2
.
- Should I provide a 0 based index for the access or a 1 based index? In example
--slice 1:2
with 0 based index would start with the second element and with 1 based index it would start with the first element. - And would you think its better to have the
END
to be inclusive or exclusive? In example--slice 1:2
would get only one element if its exclusive or it gets two elements if its inclusive.
I know this is all personal taste, but I’m currently just torn between all options and cannot decide. And thought to ask you what you think. Maybe that helps me sorting my own thoughts a bit. Thanks in advance.
Sorry for late reply. I actually like the idea to use words to indicate
start
andend
as well. But with additional “math like” features it gets a little bit complicated to parse for simple slicing as an option in a program. It makes much more sense to do this flexible thing in a language. BTW its shouldn’t be needed to have anend
if you already have a negative number.I use the empty string as indicator for start or end
"..2"
(BTW I switched to..
separator after long thinking, reading arguments and debating with myself).Just as an idea, you could provide another variable
mid
so one could start counting from there(mid+2:end)
. And man the idea sounds really elegant to use[
or(
to indicate if the number is inclusive or exclusive. But I fear it could be a little bit confusing and people could forget which one is which. I would rather prefer special characters that are not used otherwise. In example both sides are always inclusive and there is a special character before or after the number to indicate its exclusion. A character that is not used otherwise in numbers or slices and is representing the exclusion unmistakably, and I have absolute no idea what this could be.I have to say the usage of brackets to indicate its inclusion or exclusion is creative thinking!