OOP in Lua: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
<pageclass subcaption="Adam James @adam.mta"></pageclass>
<pageclass subcaption="Adam James @adam.mta"></pageclass>
== '''This content is not concluded yet.''' ==
----
{{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.


See Also