use_strict – enable strict checking of global variable usage
-- Place this at the top of init.lua -- (after "module(...)", if you are using that) use_strict()
use_strict()
enables a mode where all usage of Lua global variables is strictly checked. If a global variable is used before it is first assigned to, then an error message will result.
The intention of this is to catch mistakes where a global variable name is misspelled. For example, if I write to a global variable named floor_tile
, but then later refer to it as floot_tile
(a typo), then in standard Lua, this would not result in an error message; instead, a value nil
would be used for floot_tile
. This might cause an error, or it might just create a subtle bug that takes a long time to debug, depending on what the code is actually doing with that variable. By enabling use_strict()
, the typo can be found much sooner.
None.
use_strict()
itself shouldn't throw errors. However, if global variables are used incorrectly (after use_strict()
mode is enabled) then errors will be raised, as described above.
If you do actually want to use a global variable with a default value of nil
, then you will need to explicitly assign to that variable first, before using it. This can be achieved easily enough, by writing something like my_variable = nil
near the top of your code. Then, uses of my_variable
will not be classed as errors, because my_variable
has previously been assigned to (even though the assigned value was only nil
). The classic
module uses this technique with a variable called Dsetup
: see dungeon_setup.lua.
The classic
module uses use_strict()
in its init.lua.