A ruler with the logo for the Lua Programming language

  • Kerb@discuss.tchncs.de
    link
    fedilink
    arrow-up
    59
    ·
    edit-2
    10 months ago

    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

    • Amaltheamannen@lemmy.ml
      link
      fedilink
      arrow-up
      20
      ·
      10 months ago

      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].

      • SkyeStarfall@lemmy.blahaj.zone
        link
        fedilink
        arrow-up
        9
        ·
        10 months ago

        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.