Hacker News new | ask | show | jobs
by vitiral 741 days ago
Indexes do start at one. Offsets start at zero.

If you have a table of 5 apples and the middle one is rotten do you say the rotten one is the 2nd or 3rd?

1 comments

That was a surprising downvote.

I was referring to this:

"it is customary in Lua to start arrays with index 1" [1]

Not being a native English speaker, I may have phrased something wrong. I find "one-based indexing" in arrays not particular intuitive, and error-prone.

Better?

[1] https://www.lua.org/pil/11.1.html

No, what you phrased is a common argument but IMO doesn't follow from natural language. The fact that C uses pointer offsets as it's "indexes" is IMO the truly counterintuitive thing.

Obviously I use 0 based indexes for most of my programming. I have not found 1 based indexing to be a serious problem since Lua is a high enough language that I'm rarely doing complex index arithmetic.

FYI I didn't downvote you.