Lua Tutorial

Revision as of 12:56, 14 August 2018 by Mex (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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