Lua - Tabelle.einfügen funktioniert nicht
Warum nicht t:insert(9)
arbeiten in Lua?
(Ich möchte anfügen, die einen Wert von 9 an das Ende der Tabelle)
t = {1,2,3}
table.insert(t, 9) -- works (appends 9 to end of table t)
t:insert(9) -- does NOT work
Ich dachte im Allgemeinen
a.f(a,x)
ist equalivant zu a:f(x)
im Lua
Du musst angemeldet sein, um einen Kommentar abzugeben.
Während es stimmt, dass
a:f(x)
ist einfach nur syntaktischer Zucker füra.f(a,x)
, die zweite syntax ist nicht, was Sie da haben. Denke, dass es durch rückwärts:Dem Aufruf der Funktion, die Sie versuchte
t:insert(9)
Also die syntax-Regel, die Sie angegeben wäre
t.insert(t, 9)
Aber die arbeiten Funktionsaufruf ist
table.insert(t, 9)
Sehen, wie die letzten beiden nicht die gleichen? Also die Antwort auf Ihre Frage ist, dass insert() ist keine Funktion enthalten in
t
, es ist in "Tabelle".table.insert(t, v)
?Da die
table
Methoden wurden nicht im Zusammenhang mitt
ist, müssen Sie entweder rufen Sie direkt über dietable.insert
syntax, oder definieren Sie die metatable auft
zutable
, z.B.:t -> something else -> table
- und es sprühte über, aber ich habe es noch nicht getestet mich.Sie versuchen, rufen Sie einen Eintrag in Ihrer Tabelle einfügen, allerdings in der t-Tabelle, es gibt keine. Wenn Sie wollen, dass es funktioniert, was man machen könnte, ist der Eintrag einfügen auf Tabelle.legen Sie