2017-01-08 3 views
2

Ich verwende häufig print Funktion zum Debuggen in Verbindung mit os.exit(). Ich möchte os.exit() nicht jedes Mal eingeben, wenn ich print verwende, also möchte ich diese Funktion neu definieren.Wie kann ich den Ausdruck in Lua 5.3 korrekt neu definieren?

> function pprint(...) 
>> for _,a in ipairs(arg) do 
>> print(a) 
>> end 
>> os.exit() 
>> end 


> pprint('hello',1,2,3) 
hello 
1 
2 
3 
[[email protected] ~]$ 

Obwohl dies in arbeitet Lua 5.1, es funktioniert nicht in Lua 5.3 und aus irgendeinem Grund, Torch. Ich habe die Lua-5.3-Dokumente nach dem Ausdruck "Triple Dots" gelesen, konnte aber keine Referenz finden, wie man auf ... Argumente zugreifen kann. Kannst du erklären, was geändert wurde und wie man print für Lua 5.3 neu definiert?

+4

'für _, a in ipairs {...} do' –

Antwort

1

Automatische Erstellung der arg Tabelle für Vararg Funktionen wurde in Lua 5.1 veraltet und in Lua 5.2 entfernt.

Wie von Egor erwähnt, verwenden

for _,a in ipairs({...}) do 

statt

for _,a in ipairs(arg) do 

von Or

local arg={...} 

zu Beginn der Funktion hinzuzufügen.

Verwandte Themen