Difference between revisions of "Basic lua: Functions"

From The Official Visionaire Studio: Adventure Game Engine Wiki
 
(5 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>
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.
+
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 ==
 
== Creating Functions ==
 
Below I am going to show you how to create your own custom functions.
 
Below I am going to show you how to create your own custom functions.
  
=== Declare Function ===
+
=== Classic Function ===
 
{| class="ts"
 
{| class="ts"
 
|-
 
|-
! returns hello world! !!
+
! print hello world! !!
 
|-
 
|-
 
| style="max-width:680px;" | <syntaxhighlight lang="lua">
 
| style="max-width:680px;" | <syntaxhighlight lang="lua">
Line 28: Line 28:
 
{| class="ts"
 
{| class="ts"
 
|-
 
|-
! returns hello world! !!
+
! print hello world! !!
 
|-
 
|-
 
| style="max-width:680px;" | <syntaxhighlight lang="lua">
 
| style="max-width:680px;" | <syntaxhighlight lang="lua">
Line 42: Line 42:
 
{| class="ts"
 
{| class="ts"
 
|-
 
|-
! returns 6 !!
+
! print 6 !!
 
|-
 
|-
 
| style="max-width:680px;" | <syntaxhighlight lang="lua">
 
| style="max-width:680px;" | <syntaxhighlight lang="lua">
Line 53: Line 53:
 
|}
 
|}
  
== Reserved Functions ==
+
=== 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 15: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 >