Basic
Basic
_G
Description: Global variable that holds the global environment (all global functions/variables)
Example:
print(_G.tostring(true)) -- tostring is global, which makes it accessible via _G as wellsetfenv
Description: sets the environment for a function to use, rather than _G.
Usage: setfenv(f)
Example:
function x() zzz.x = 5 print() -- will not work here, the environment is not _G.end
setfenv(x, {zzz = {x = 10}})getfenv
Description: returns the environment in use by given function or stack level, default 1.
Usage: getfenv([f])
Example:
function x() zzz.x = 5 print() -- will not work here, the environment is not _G.end
setfenv(x, {zzz = {x = 10}})print(getfenv(x)) -- environment is {zzz = {x = 10}}setmetatable
Description: sets the metatable for given table
Usage: setmetatable(table, metatable)
Example:
local t = {}setmetatable(t, {__call = print})getmetatable
Description: gets the metatable of specified table, returning the __metatable metamethod’s value if applicable
Usage: getmetatable(table)
Example:
local t = {}setmetatable(t, {__call = print})print(getmetatable(t)) -- {__call = print}setmetatable(t, {__metatable = {x = 5}})print(getmetatable(t)) -- {x = 5}rawset
Description: sets a value in the table at specified index without invoking any metamethods
Usage: rawset(table, index, value)
Example:
local t = {}setmetatable(t, {__newindex = function(self, k, v) print('Value set at index '.. tostring(k) ..' to value '.. tostring(v))end})
t.x = 5 -- Value set at index x to value 5rawset(t, 'xx', 50) -- prints nothing, __newindex is not be invokedrawget
Description: returns a value from a table at given index without invoking any metamethods
Usage: rawget(table, index)
Example:
local t = {}setmetatable(t, {__index = function(self, k, v) print('Accessing value at index '.. tostring(k))end})
print(t.x) -- Accessing value at index xprint(rawget(t, 'x')) -- nothing, __index is not invokedrawequal
Description: compares two values using == without invoking any metamethod
Usage: rawequal(v1, v2)
Example:
local mt = {__eq = function(a, b) print('Checking equality ( '.. tostring(a) ..' vs '.. tostring(b) ..' )') return rawequal(a, b)end}
local t = {}setmetatable(t, mt)
local t2 = {}setmetatable(t2, mt)
print(t == t2) -- Checking equality ( table: 00f28b00 vs table: 00f28a10 )print(rawequal(t, t2)) -- nothing, __eq is not invokedpairs
Description: iterator to traverse over a table in any order possible
Usage: pairs(t)
Example:
local t = {1, 2, 3}for k, v in pairs(t) do print(k, v)endipairs
Description: iterator to traverse over a table in sequence
Usage: ipairs(t)
Example:
local t = {1, 2, 3}for k, v in ipairs(t) do print(k, v)endloadstring
Description: loads a Lua chunk
Usage: loadstring(string [, chunkName])
Example:
local f = loadstring([[return function() print(123) end]])f() -- 123loadfile
Description: loads a Lua chunk from specified file, or from standard input if filename is not specified
Usage: loadfile([filename])
Example:
-- x.luareturn function() print(123) end
-- other file.lualocal f = loadfile("x.lua")f() -- 123next
Description: returns the next key, value pair in table starting from specified index, otherwise index, is nil
Usage: next(table [, index])
Example:
local t = {1, 2, 3}print(next(t, 2)) -- 3, 3print(next(t)) -- 1, 1pcall
Description: calls a function in a protected state, returning any errors if they happen, otherwise returns true if successful plus the returned values from f
Usage: pcall(f, …)
Example:
function x(n) return x + nend
local success, ret = pcall(x, 5)print(success, ret) -- false C:\Users\user\lua_file.lua:2: attempt to perform arithmetic on a function value (global 'x')xpcall
Description: calls a function in a protected state, using err as the error handler and returning true if no errors happen, otherwise returns false plus the result from err
Usage: xpcall(f, err)
Example:
function x(n) return x + nend
local function x_error_handler(error) print(error) return 123end
local success, ret = xpcall(x, x_error_handler)print(success, ret)Output:
C:\Users\user\lua_file.lua:2: attempt to perform arithmetic on a function value (global 'x')false 123unpack
Description: unpacks a table in sequence, starting from i and ending with j (1, #table respectively by default), returning all values from it
Usage: unpack(table [, i [, j]])
Example:
local t = {1, 2, 3, 4, 5}print(unpack(t)) -- 1, 2, 3, 4, 5print(unpack(t, 2, 4)) -- 2, 3, 4type
Description: returns the data type of given value
Usage: type(value)
Example:
print(type(123)) -- numberprint(type({})) -- tableprint(type(nil)) -- nilprint(type('')) -- stringprint(type(true)) -- booleantonumber
Description: converts value to a number if possible
Usage: tonumber(val [,base])
Example:
local x = '5'print(tonumber(x)) -- 5print(type(tonumber(x))) -- numberprint(type(x)) -- stringtostring
Description: converts value to a string
Usage: tostring(val)
Example:
print(tostring({})) -- table: 00ee88a8print(tostring(5)) -- 5
print('This is a boolean: '.. tostring(true)) -- This is a boolean: true