Ich habe ein Problem mit Variablen in Tabellen. Dies ist wichtig, da ich Tabellen als Konfiguration für mein Programm verwende.lua, Zeichenketten mit Variablen in Tabellen kombiniert, wenn aus der Datei
so habe ich den folgenden Code getestet, das funktioniert:
> x = "X"
> t = {["ref"]="table with value: "..x}
> print(t["ref"])
table with value: X
> x = "Y"
> t = {["ref"]="table with value: "..x}
> print(t["ref"])
table with value: Y
es jedoch nicht ohne den zweiten > t = ["ref"]="table with value: "..x
jetzt funktioniert ich das in mein Hauptprogramm Hexe besteht aus zwei Dateien zu implementieren ging , eine Hexe gibt die Konfigurationstabelle zurück. Und eine Datei mit allen Funktionen und Sachen. es sieht aus wie folgt
FILE A (main.lua):
testString = "test1"
print(testString)
local CONFIG = require'config'
print(CONIFG[1].test)
testString = "test2"
print(testString)
local CONFIG = require'config'
print(CONIFG[1].test)
FILE B (config.lua):
local CONFIG = {
{["test"]=[[this is a test: ]]..testString}
}
return CONFIG
jetzt, wenn ich Datei A laufen (aka main.lua) ich bekomme die folgende Ausgabe:
test1
this is a test: test1
test2
this is a test: test1
ich kann nicht herausfinden, was ich falsch hier tue .. ich dachte, dass es etwas mit dem zu tun hatte, dass es ein si ngle String so gemacht i testString
eine Tabelle, aber das gab mir das gleiche Ergebnis ...
(dieser Titel wirklich scheint unheimlich .. sorry)
Vielen Dank .. ich dachte, Require ausgeführt die Zeichenfolge, als es aufgerufen wurde ... auch "Ich habe ein Problem mit Variablen in Tabellen."Es könnte eine falsche Beschreibung gewesen sein ... es tut mir leid, aber danke für deine Klarstellung: D – subject546
Das Programm arbeitet jetzt mit folgendem Code' local CONFIGf = assert (loadfile ("config.lua")) '' local CONFIG = CONFIGf() 'oder' local CONFIG = assert (loadfile ("config.lua"))() 'wenn du oneliner magst; p – subject546