this post was submitted on 08 Mar 2024
335 points (100.0% liked)
196
16437 readers
1698 users here now
Be sure to follow the rule before you head out.
Rule: You must post before you leave.
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
thats probably taking the piss with how lua handles array indexing.
in most programming languages,
the first element of an array is element 0,
in lua arrays start with element 1.
imo it kinda makes sense,
but it causes confusion because it goes against established conventions
The reason for the convention is that it used to be just a pointer (adress) to consecutive elements in memory. A[x] is then literally translated to the adress of A + sizeof(x)*x. Meaning that the first element is at A[0].
I mean, it's still the case under the hood, and languages like C do work that way. Sure, it's abstracted away in most programming languages these days, but if you ever need to do direct memory management, it's very much still how it works.
Scratch and Mathematica also have arrays start at one.
I never worked with lua but I get it now. Thanks!