2017-01-08 3 views
2

os.exit()と一緒にデバッグする機能をよく使用します。printprintを使用するたびにos.exit()と入力しないので、この関数を再定義します。ルア5.3でプリントを正しく再定義するには?

> 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] ~]$ 

これはのLua 5.1で動作しますが、それはいくつかの理由で、Torchため、Luaの5.3で作業していません。私は "トリプルドット"の表現のためのルア5.3のドキュメントを調べたが、...引数にアクセスする方法のリファレンスを見つけることができませんでした。変更された内容と、Lua 5.3のprintを再定義する方法について説明できますか?

+4

'for _、a in ipairs {...} do' –

答えて

1

vararg関数用のテーブルargの自動作成は、Lua 5.1では廃止され、Lua 5.2では削除されました。

Egorで述べたように、代わりに

for _,a in ipairs(arg) do 

または関数の開始時に

local arg={...} 

を追加するの

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

を使用しています。

関連する問題