The global table
The one thing you really need to understand about Lua is that just about everything in it is a table. Global variables in Lua (variables not declared local) live in an invisible, global table. This table is exposed as _G
. This global table is just like any other table in Lua; you can perform the exact same operations on it. This section will explore two methods of working with the functionality of the global table.
Explicit variables
The loose, typed nature of variables in Lua can be great for prototyping games quickly, but it can also lead to a lot of bugs! For example, consider the following code:
five21 = 521 -- Variable name ends with a 1 for i=1,1000 do if i == five21 then five2l = "Five Twenty One" -- ERROR! Variable name ends with an l break end end print("value: " .. five21)
Can you spot the problem? During the first assignment, the five21
variable ends with a 1
, but in the second assignment it ends with a lower case l
. Characters such as 0
and O
, 1
and...