Lua Tutorial
Jump to navigation
Jump to search
This page shows some of the functionality in Lua. Be sure to reference the official Lua manual when you can.
Comments
-- this is a single line comment, which can appear at the end of any line
--[[
this is a multi line comment,
which can appear anywhere
]]
Functions
someFunction() -- this is a call to a function named someFunction, the code for that function will run when the function is called
someFunction(5, 400, 5000) -- this is a call to a function, sending 3 parameters to it. a parameter is an input value for a function
-- this is a function definition, which is a portion of code, don't forget the word end to end the function definition
function someFunction()
end
-- this is a function definition, which takes 3 parameters. parameters are also called arguments
function someFunction(arg1, arg2, arg3)
end
-- this is a function without a name, also known as a lambda function
function() end
-- this is a function which adds 2 numbers
-- the word return is used to set the output of the function, as well as to stop the function running at the expression after the word return
-- the result of add(..) is sent straight to the print function, print is a function provided by Lua
function add(a, b)
return a + b
end
print(add(40, 20))
Data Types
string
'this is a string'
"this is a string"
[[this is a string]]
number
20
40.0
99e5
-20
-40.0
boolean
true
false
nil
nil
someVariable = nil -- delete a variable
if someVariable == nil then -- comparison with nil
end
table
{} -- an empty table
{20, 50, 80} -- a table with 3 elements, keys are 1 2 and 3, values are 20 50 and 80, respectively.
{aa=5, bb=10} -- a table with 2 elements, element with key aa has value 5, and element with key bb has value 10
{[5]='aa', [10]='bb'} -- a table with 2 elements, element with key 5 has value 'aa', and element with key 10 has value 'bb'
function
function() end -- an empty function with no name
function someFuncName() -- an empty function with a name
end
someFuncName = function() -- an empty function with a name
end
There are also data types userdata and thread.
Operators
Math Operators
+ - * / % -- these are mathematical operators
5 * 4 -- results in 20
5 * 4 + 2 -- results in 22
5 * (4 + 2) -- results in 30
Variables
local someVariableName = 'some string value' -- this creates a local variable and assigns it a string value
someGlobalVariable = 50 -- this either creates a global variable, or updates an existing variable, and assigns it a number value
_G.someGlobalVariable = 50 -- this is the same as the global variable above, however we are referencing the global namespace using _G, so the variable will definitely be global
Conditions
local someVariable = 500
-- if
if someVariable < 1000 then
print('value is less than 1000')
end
-- if and else
if someVariable < 200 then
print('value is less than 200')
else
print('value is 200 or more')
end
-- if, elseif and else
if someVariable < 100 then
print('value is less than 100')
elseif someVariable < 300 then
print('value is less than 300')
elseif someVariable < 500 then
print('value is less than 500')
else
print('value is 500 or more')
end
Loops
-- integer loop
for i=1, 20 do
print(i)
end
-- table loop
for i,v in ipairs({20,50,80}) do
print(v)
end