Difference between revisions of "Basic lua: Functions"

From The Official Visionaire Studio: Adventure Game Engine Wiki
 
(8 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
| class="i_arrow clickablecell" |  [[basic_lua:_Tables|<]]
 
| class="i_arrow clickablecell" |  [[basic_lua:_Tables|<]]
 
| class="i_norm clickablecell" | '''[[basic_lua:_Index|Index]]'''
 
| class="i_norm clickablecell" | '''[[basic_lua:_Index|Index]]'''
| class="i_arrow clickablecell" | [[basic_lua:_Functions|>]]
+
| class="i_arrow clickablecell" | [[basic_lua:_Iteration_and_Loops|>]]
 
|}
 
|}
 +
<hr>
 +
Functions can be really useful as they let us process/calculate huge amounts of data & return it, also if you include input arguments then they can potentially be reused multiple times over, which can reduce overall workload & increase workflow.
  
Tables are one of the features of Lua script, that make the scripting language so dynamic & easy to use, as they allow us to easily create tables, insert, remove & sort data. Tables are often comprised of arrays that usually involve keywords - or an index number - & a value. Tables can be accessed using multiple different methods.
+
== Creating Functions ==
 +
Below I am going to show you how to create your own custom functions.
  
== Creating a function ==
+
=== Classic Function ===
 
{| class="ts"
 
{| class="ts"
 
|-
 
|-
! method 1: function operator !!
+
! print hello world! !!
 
|-
 
|-
 
| style="max-width:680px;" | <syntaxhighlight lang="lua">
 
| style="max-width:680px;" | <syntaxhighlight lang="lua">
Line 22: Line 25:
 
|}
 
|}
  
 +
=== Variable as Function ===
 
{| class="ts"
 
{| class="ts"
 
|-
 
|-
! method 2: variables can be functions too !!
+
! print hello world! !!
 
|-
 
|-
 
| style="max-width:680px;" | <syntaxhighlight lang="lua">
 
| style="max-width:680px;" | <syntaxhighlight lang="lua">
function hello()
+
hello = function()
 
  print("hello world!")
 
  print("hello world!")
 
end
 
end
  
 
hello()
 
hello()
</syntaxhighlight> || width="180px" style="vertical-align:middle;" | [[File:Basic_lua_(functions)_1.png|frameless|center|180px]]
+
</syntaxhighlight> || width="180px" style="vertical-align:middle;" | [[File:Basic_lua_(functions)_2.png|frameless|center|180px]]
 +
|}
 +
 
 +
=== Function with Input Arguments ===
 +
{| class="ts"
 +
|-
 +
! print 6 !!
 +
|-
 +
| style="max-width:680px;" | <syntaxhighlight lang="lua">
 +
function plus(a, b)
 +
return a + b
 +
end
 +
 
 +
print( plus(2, 4) )
 +
</syntaxhighlight> || width="180px" style="vertical-align:middle;" | [[File:Basic_lua_(functions)_3.png|frameless|center|180px]]
 
|}
 
|}
  
 +
=== Input Arguments and Fallback ===
 +
{| class="ts"
 +
|-
 +
! print 0.5, 5 !!
 +
|-
 +
| style="max-width:680px;" | <syntaxhighlight lang="lua">
 +
function divideAndConquer(a, b, c)
 +
  c = c or 1 -- if c equals nil then c equals 1
 +
  return (a / b) * c
 +
end
 +
 +
print( divideAndConquer(2, 4) ) -- 2 ÷ 4 x 1 = 0.5
 +
print( divideAndConquer(2, 4, 10) ) -- 2 ÷ 4 x 10 = 5
 +
</syntaxhighlight> || width="180px" style="vertical-align:middle;" | [[File:Basic_lua_(functions)_4.png|frameless|center|180px]]
 +
|}
 +
<hr>
 
{| class="in"
 
{| class="in"
 
|-
 
|-
 
| class="i_arrow clickablecell" |  [[basic_lua:_Tables|<]]
 
| class="i_arrow clickablecell" |  [[basic_lua:_Tables|<]]
 
| class="i_norm clickablecell" | '''[[basic_lua:_Index|Index]]'''
 
| class="i_norm clickablecell" | '''[[basic_lua:_Index|Index]]'''
| class="i_arrow clickablecell" | [[basic_lua:_Functions|>]]
+
| class="i_arrow clickablecell" | [[basic_lua:_Iteration_and_Loops|>]]
 
|}{{toc}}
 
|}{{toc}}

Latest revision as of 16:45, 10 September 2022

< Index >

Functions can be really useful as they let us process/calculate huge amounts of data & return it, also if you include input arguments then they can potentially be reused multiple times over, which can reduce overall workload & increase workflow.

Creating Functions

Below I am going to show you how to create your own custom functions.

Classic Function

print hello world!
function hello()
 print("hello world!")
end

hello()
Basic lua (functions) 1.png

Variable as Function

print hello world!
hello = function()
 print("hello world!")
end

hello()
Basic lua (functions) 2.png

Function with Input Arguments

print 6
function plus(a, b)
 return a + b
end

print( plus(2, 4) )
Basic lua (functions) 3.png

Input Arguments and Fallback

print 0.5, 5
function divideAndConquer(a, b, c)
  c = c or 1 -- if c equals nil then c equals 1
  return (a / b) * c
end

print( divideAndConquer(2, 4) ) -- 2 ÷ 4 x 1 = 0.5
print( divideAndConquer(2, 4, 10) ) -- 2 ÷ 4 x 10 = 5
Basic lua (functions) 4.png

< Index >