"return" in a nutshell....
The return statement is used to return values from a function.
Example:
function number()
return 7
end
print(number())
'7' will print in the output.
------------------------------------------------------------------------------------------
More Examples:
Variables can be used to return values,
function string()
local s = "Message"
return s
end
print(string())
'Message' will print in the output.
------------------------------------------------------------------------------------------
When assigning a function to a variable, the variable becomes what the function returns.
function number()
return 11
end
n = number()
print(n)
'11' will print in the output.
------------------------------------------------------------------------------------------
'return' acts as output.
function add(value)
v = value + 10
return v
end
n = add(5)
print(n)
'15' will print in the output.
------------------------------------------------------------------------------------------
Another output example:
function add(value)
return value + 10
end
n = add(6)
print(n)
'16' will print in the output.
------------------------------------------------------------------------------------------
'return'ing nothing returns nil
function nothing()
return
end
n = nothing()
print(n)
'nil' will print in the output.
------------------------------------------------------------------------------------------
'return'ing nothing is often used to escape a function
----------
When not escaping:
function DontEscape(value)
if value == 0 then
print("it was 0")
end
print("the end")
end
----------
DontEscape(1)
'the end' will print in the output.
----------
DontEscape(0)
'it was 0' will print in the output.
'the end' will print in the output.
----------
When escaping:
function Escape(value)
if value == 0 then
print("it was 0")
return
end
print("the end")
end
----------
Escape(1)
'the end' will print in the output.
----------
Escape(0)
'it was 0' will print in the output.
------------------------------------------------------------------------------------------
'return' can be used to return multiple values.
function NotMultiple()
return 10
return 20
end
print(NotMultiple())
'10' will print in the output.
----------
function Multiple()
return 10,20
end
print(Multiple())
'10 20' will print in the output.
------------------------------------------------------------------------------------------
Multiple variables can be set with multiple returns.
----------
Normal:
a,b,c = 5,6,7
print(a)
print(b)
print(c)
'5' will print in the output.
'6' will print in the output.
'7' will print in the output.
----------
function multiple()
return 15,16,17
end
a,b,c = multiple()
print(a)
print(b)
print(c)
'15' will print in the output.
'16' will print in the output.
'17' will print in the output.
------------------------------------------------------------------------------------------