Lua - table.insert funktioniert nicht

8

Warum arbeitet t:insert(9) nicht in Lua ?
(Ich möchte einen Wert von 9 an das Ende der Tabelle anhängen)

%Vor%

Ich dachte im Allgemeinen

a.f(a,x) ist gleichbedeutend mit a:f(x) in Lua

    
frooyo 25.05.2011, 15:27
quelle

3 Antworten

15

Es stimmt zwar, dass a:f(x) einfach syntaktischer Zucker für a.f(a,x) ist, dass die zweite Syntax nicht das ist, was Sie dort haben. Denke es rückwärts durch:

Der Funktionsaufruf, den Sie versucht haben, ist t:insert(9)

Die von Ihnen angegebene Syntaxregel wäre also t.insert(t, 9)

Aber der Funktionsaufruf ist table.insert(t, 9)

Sehen Sie, wie die letzten beiden nicht gleich sind? Die Antwort auf Ihre Frage ist also, dass insert () keine Funktion ist, die in t enthalten ist, sondern in "table".

    
jhocking 25.05.2011, 15:31
quelle
10

Da die table -Methoden nicht mit t verknüpft wurden, müssen Sie sie entweder direkt über die table.insert -Syntax aufrufen oder die Metatabelle auf t als table definieren, zB:

%Vor%     
BMitch 25.05.2011 16:00
quelle
2

Sie versuchen, einen Eintrag in Ihrer Tabelle namens insert aufzurufen, in Tabelle t gibt es jedoch keine. Wenn Sie möchten, dass es funktioniert, können Sie den Einfügeeintrag auf table.insert

setzen %Vor%     
Bronzdragon 03.03.2014 16:21
quelle

Tags und Links