Ist es möglich zu sehen, ob eine Zeichenfolge mit dem Namen einer Tabelle übereinstimmt?
Zum Beispiel:
Ich weiß, dass eine Tabelle namens "os" existiert, und ich habe eine Zeichenfolge "os"
.
Gibt es dann einen Weg, dies zu tun:
Natürlich wird dieses Beispiel nicht so funktionieren, wie ich es möchte, weil
%Vor%gibt nur "string" zurück.
Der Grund, warum ich das machen möchte, ist, nur weil ich alle existierenden Lua-Tabellen auflisten wollte, also habe ich diesen Code gemacht:
%Vor%Ich wäre nicht überrascht, wenn es eine einfachere Methode gibt, alle vorhandenen Tabellen aufzulisten. Ich mache das nur aus Spaß, um Lua zu lernen.
Wenn Sie über alle globalen Variablen iterieren möchten, können Sie eine for
-Schleife verwenden, um über die _G
-Tabelle zu iterieren, in der sie gespeichert sind:
k
enthält den Variablennamen und v
enthält den Wert. Daher können Sie mit type(v)
überprüfen, ob die Variable eine Tabelle ist.
Um Ihre ursprüngliche Frage zu beantworten, können Sie eine globale Variable namentlich mit _G[varName]
erhalten. So wird type(_G["os"])
"table"
geben.
interjay gab den besten Weg, es tatsächlich zu tun. Wenn Sie interessiert sind, finden Sie Informationen zu Ihrer ursprünglichen Frage im lua-Handbuch . Grundsätzlich möchten Sie:
%Vor%Ladestring erstellt eine Funktion, die den Code in der Zeichenfolge enthält. Das Ausführen von f () führt diese Funktion aus, die in diesem Fall nur das zurückgibt, was in der Zeichenfolge mystr.
warTags und Links lua