C# hat this
und VB hat ME
. Was ist das Lua-Äquivalent?Wie referenziert sich ein Objekt in Lua?
Ich versuche, das Eltern der Skriptklasse in Roblox zu verweisen.
C# hat this
und VB hat ME
. Was ist das Lua-Äquivalent?Wie referenziert sich ein Objekt in Lua?
Ich versuche, das Eltern der Skriptklasse in Roblox zu verweisen.
Vom Lua documentation section 2.5.9, ist die Selbst Referenz in der Regel self
:
Die Doppelpunkt-Syntax zur Definition von Methoden verwendet, das heißt Funktionen, die
self
einen impliziten zusätzlichen Parameter haben. Somit ist die Aussagefunction t.a.b.c:f (params) body end
syntaktischer Zucker für
t.a.b.c.f = function (self, params) body end
Als Greg pointed out already, der Name, den Sie suchen self
ist.
Beachten Sie jedoch, dass Lua keine OOP-Sprache mehr ist als eine rein prozedurale oder funktionale Sprache. Es stellt einfach alle Low-Level-Mechanismen zur Verfügung, um ein OOP-Design zu implementieren. Eines der Designprinzipien wurde zum Ausdruck gebracht, "Mechanismus, nicht Politik" zur Verfügung zu stellen. Aus diesem Grund kann nicht garantiert werden, dass die Umgebung, in der Sie ausgeführt werden, Vererbung verwendet oder dass Sie ein übergeordnetes Objekt für ein bestimmtes Objekt finden können.
Es wäre eine gute Idee sein, die Abschnitte der Lua Handbuch, Programmierung in Lua, und das Wiki, die Merkmale beziehen sich auf eine Bewertung OOP:
In Lua, wollen Sie den "Selbst" -Wert. Allerdings verwenden Sie ROBLOX, das Sandboxed ist. Jedes Skript wird in einem eigenen Thread ausgeführt, und das Skript zu verweisen, werden Sie brauchen „script“ zu verwenden, dh script.Parent
local Table = {}
Table.Var = "Testing"
function Table:Test()
print(self.Var)
end
Table:Test()
oder
local Table = {}
Table.Var = "Testing"
function Table.Test(self)
print(self.Var)
end
Beide Funktion wird das gleiche tun genaue Sache.
--Edit--
Dass nur mit Tabellen arbeiten. Wenn Sie versuchen, das übergeordnete Element des Skripts zu erhalten, müssen Sie script.Parent verwenden
- Hinweis script.Parent würde zurückgeben, wo das Skript befindet. Wenn Sie ein weiteres übergeordnetes Element, script.Parent.Parent, hinzufügen, wird das übergeordnete Element des übergeordneten Elements usw. zurückgegeben.
Ich habe "LUA" zu Lua für Sie geändert.Lua ist ein Eigenname, der Name des Erdmondes, auf Portugiesisch. Es ist kein Akronym. – RBerteig