OOP in Lua: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
<pageclass subcaption="Adam James @adam.mta"></pageclass> | <pageclass subcaption="Adam James @adam.mta"></pageclass> | ||
{{Note_box| | {{Note_box| | ||
Any further questions can be discussed at the [http://google.com topic] dedicated to this tutorial.}} | Any further questions can be discussed at the [http://google.com topic] dedicated to this tutorial.}} | ||
Line 16: | Line 12: | ||
There is a basic and simple predefined variables we should recognize and know: '''self'''. Which refers to the environment within which we are executing a code. | There is a basic and simple predefined variables we should recognize and know: '''self'''. Which refers to the environment within which we are executing a code. | ||
=== Our first environment === | === Our first environment === | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
local array = {} | local array = {} | ||
Line 23: | Line 18: | ||
end | end | ||
</syntaxhighlight> | </syntaxhighlight> | ||
What we do upon above is defining a ''local'' environment and then declaring the function '''example''' as part of it. | What we do upon above is defining a ''local'' environment and then declaring the function '''example''' as part of it. Alright, so how should we proceed in order to call the mentioned function? As follows: | ||
Alright, so how should we proceed in order to call the mentioned function? As follows: | |||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
array:example() | array:example() | ||
Line 32: | Line 25: | ||
As Lua is so cool, we're able to call a function using two methods: "''':'''" and "'''.'''". As you can see on the example above, if we use a dot we're supposed to send '''self's value''' to the function. Yes, that's right, and in case we use a colon, self's value will be the environment within which we are executing a code, i.e. '''array'''. | As Lua is so cool, we're able to call a function using two methods: "''':'''" and "'''.'''". As you can see on the example above, if we use a dot we're supposed to send '''self's value''' to the function. Yes, that's right, and in case we use a colon, self's value will be the environment within which we are executing a code, i.e. '''array'''. | ||
=== Variables and further handling === | |||
<syntaxhighlight lang="lua"> | |||
local array = {text = "none"} | |||
function array:setKey (key, value) | |||
self[key] = value | |||
end | |||
function array:getKey (key) | |||
return self[key] | |||
end | |||
print(array:getKey("text")) -- "none" | |||
array:setKey("text", "something") | |||
print(array:getKey("text")) -- "something" | |||
</syntaxhighlight> | |||
What we do here is retrieving and modifying '''text''''s value, which a variable inside array, recurring to functions inside the same environment as the variable is. | |||
Revision as of 02:07, 18 January 2015
This template is no longer in use as it results in poor readability.
This is a scripting tutorial that teaches you how to start using an Object-Oriented developing interface with Lua.
Glossary
- environment: either a table or an array containing values.
Initialising
There is a basic and simple predefined variables we should recognize and know: self. Which refers to the environment within which we are executing a code.
Our first environment
local array = {} function array:example (argument) return "Hello" end
What we do upon above is defining a local environment and then declaring the function example as part of it. Alright, so how should we proceed in order to call the mentioned function? As follows:
array:example() array.example(array, example)
As Lua is so cool, we're able to call a function using two methods: ":" and ".". As you can see on the example above, if we use a dot we're supposed to send self's value to the function. Yes, that's right, and in case we use a colon, self's value will be the environment within which we are executing a code, i.e. array.
Variables and further handling
local array = {text = "none"} function array:setKey (key, value) self[key] = value end function array:getKey (key) return self[key] end print(array:getKey("text")) -- "none" array:setKey("text", "something") print(array:getKey("text")) -- "something"
What we do here is retrieving and modifying text's value, which a variable inside array, recurring to functions inside the same environment as the variable is.