8
votes

Comment un objet se réfère-t-il à Lua?

c # a ceci et vb a moi . Quel est l'équivalent Lua?

J'essaie de faire référence au parent de la classe de script à Roblox.


1 commentaires

J'ai changé "Lua" à Lua pour vous. Lua est un nom propre, le nom de la lune de la Terre, en portugais. Ce n'est pas un acronyme.


4 Réponses :


15
votes

du Lua Documentation Section 2.5.9 , le Auto-référence est généralement auto code>:

La syntaxe du côlon est utilisée pour définir des méthodes, c'est-à-dire que avoir un paramètre supplémentaire implicite auto code>. Ainsi, la déclaration p>

t.a.b.c.f = function (self, params) body end


0 commentaires

11
votes

comme Greg a déjà signalé , le nom que vous recherchez est auto .

Cependant, soyez conscient que Lua n'est pas une langue de l'OOP qu'il ne s'agit d'une langue purement procédurale ou fonctionnelle. Il fournit simplement tous les mécanismes de faible niveau pour mettre en œuvre une conception de l'OOP. L'un des principes de conception a été exprimé sur "Fournir un mécanisme et non". En raison de cela, il n'ya aucun moyen de garantir que l'environnement dans lequel vous utilisez même l'héritage, ou que vous puissiez trouver un parent pour un objet donné.

Ce serait une bonne idée d'examiner les sections du manuel Lua, la programmation de Lua et le wiki qui concernent les fonctionnalités de l'OPO:


0 commentaires

4
votes

à Lua, vous voudrez la valeur "Self". Cependant, vous utilisez ROBLOX, qui est de la boite de sable. Chaque script est exécuté dans son propre thread et pour référencer le script, vous devez utiliser "script", i.e. script.parent


1 commentaires

Pouvez-vous ajouter un exemple? Je suis sous l'impression "script" équivaut à "soi" basé sur cette réponse; qui peut ou peut ne pas être correct.



2
votes
local Table = {}
Table.Var = "Testing"
function Table.Test(self)
print(self.Var)
end

0 commentaires