Talk:Table.size

From Multi Theft Auto: Wiki
Revision as of 22:18, 18 August 2009 by NeonBlack (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

What about using the builtin lua function:

table.getn(table)

--Subenji99 06:54, 13 July 2009 (CEST)


table.getn was replaced by the #-operator, which returns the number of table elements with a numerical (!) index.
table.size counts all elements regardless of which type their index is.
Of course it's a bad idea to use this function for a table with only numerical indices.
NeonBlack 16:19, 13 July 2009 (CEST)


Indded, I actually just attempted it with non-numerical indices and found it didn't work. I stand corrected. :D

I shall leave my humiliation (lol) here so anyone else wondering what the point of this function would be can see that it is for non-numerical indices.

Oh, reading up, I'd like to point out that if you structure your table, planning for this, you can still use the # operator. you have to count the additions you make to your table then use table.setn like so:

table.setn(table, <number of values>)

if you are using a loop to create your table, it would be a simple matter to add it after:

   table = {}
   local count = 0
   for _,v in pairs(results) do
       table[v] = someFunction(v)
       count = count + 1
   end
   table.setn(table, count)

Array Size

In my case though, this function was still required as the table I was checking against was a returned table from an exported function of mapmanager.

--Subenji99 20:43, 13 July 2009 (CEST)


You should really update your Lua skills. table.setn is deprecated like table.getn is, too.
Of course setting the n of the table would be much more efficient than iterating through it to get the size, but it's as I already said deprecated.
Alternatively you could use a mostly unused index for storing the size like _ for example. But I don't think iterating through the table and just increasing one value each step isn't that expensive.
NeonBlack 20:50, 14 July 2009 (CEST)

Sebas

Please keep using pairs instead of next for new people :)


I don't think that's useful. People should learn to use next instead of pairs. Apart from that it's no code for learning but more a code for copying.
NeonBlack 22:18, 18 August 2009 (UTC)