• pelya@lemmy.world
        link
        fedilink
        arrow-up
        15
        ·
        9 hours ago

        In Lua all arrays are just dictionaries with integer keys, a[0] will work just fine. It’s just that all built-in functions will expect arrays that start with index 1.

        • frezik@midwest.social
          link
          fedilink
          arrow-up
          2
          ·
          3 hours ago

          PHP did that same thing. It was a big problem when algorithmic complexity attacks were discovered. It took PHP years to integrate an effective solution that didn’t break everything.

        • my_hat_stinks@programming.dev
          link
          fedilink
          arrow-up
          6
          ·
          5 hours ago

          That’s slightly misleading, I think. There are no arrays in Lua, every Lua data structure is a table (sometimes pretending to be something else) and you can have anything as a key as long as it’s not nil. There’s also no integers, Lua only has a single number type which is floating point. This is perfectly valid:

          local tbl = {}
          local f = function() error(":(") end
          
          tbl[tbl] = tbl
          tbl[f] = tbl
          tbl["tbl"] = tbl
          
          print(tbl)
          -- table: 0x557a907f0f40
          print(tbl[tbl], tbl[f], tbl["tbl"])
          -- table: 0x557a907f0f40	table: 0x557a907f0f40	table: 0x557a907f0f40
          
          for key,value in pairs(tbl) do
            print(key, "=", value)
          end
          -- tbl	=	table: 0x557a907f0f40
          -- function: 0x557a907edff0	=	table: 0x557a907f0f40
          -- table: 0x557a907f0f40	=	table: 0x557a907f0f40
          
          print(type(1), type(-0.5), type(math.pi), type(math.maxinteger))
          -- number	number	number	number
          
          • Sonotsugipaa@lemmy.dbzer0.com
            link
            fedilink
            English
            arrow-up
            17
            ·
            10 hours ago

            Lua - Portuguese feminine noun for “moon”, coming from the Latin “luna”
            Luna - Latin, feminine noun (coincidentally identical to the Italian noun, also feminine)

            Yup, Lua is a girl.

    • UndercoverUlrikHD@programming.dev
      link
      fedilink
      arrow-up
      2
      ·
      6 hours ago

      Writing Lua code that also interacts with C code that uses 0 indexing is an awful experience. Annoys me to this day even though haven’t used it for 2 years