> work has begun on Lua 5.5
A beta version is now available:
The main change from 5.4 seems to be the (optional?) removal of global-by-default, instead requiring declarations for global variables.
A beta version is now available:
The main change from 5.4 seems to be the (optional?) removal of global-by-default, instead requiring declarations for global variables.
https://www.lua.org/pil/14.2.html
That code looks like this in Lua 5.1:
function set(name, val)
rawset(_G, name, val or false)
end
function exists(name)
if rawget(_G, name) then return true end
return false
end
throwError = {__newindex = function(self,name) error("Unknown global " .. name) end,
__index = function(self,name) error("Unknown global " .. name) end
}
setmetatable(_G,throwError)
Then, to use set("a") -- set"a" also works
a = 1That's also solvable using metatables.