パラメータは対話的な計算に不可欠であり、Luaプログラミング言語には{...}式が用意されています。 式が用意されています。
ほとんどのコンピューター・コマンドは、コマンドとパラメーターの2つの部分で構成されています。コマンドは実行されるプログラムであり、パラメータはコマンドのオプションやユーザー入力です。この構造がなければ、ユーザーはコマンドのコードを編集して、コマンドが処理するデータを変更しなければなりません。コンピュータに "hello world "と表示させるために コマンドを書き換えることを想像してみてください。パラメータはインタラクティブな計算に不可欠で、 {...}式が用意されています。 式が用意されています。
Luaでのパラメータの使用
たとえ引数が空のリストであることを想定していたとしてもです。 Luaは、起動後に書き込んだ内容を記録しますが、たとえ引数を使って何もしなくてもかまいません。Luaの起動時にユーザーから与えられた引数を使用するには、{...}テーブルを繰り返し実行します。 テーブルを繰り返し実行します:
local args = {...}for i,v in ipairs(args) doprint(v)
コードを実行してください:
$ lua ./myargs.lua$ lua ./myargs.lua foo --bar baz
パラメータは安全ではありません。Luaはすべてのパラメータをタイプされたとおりに表示します。
パージングパラメータ
簡単なコマンドであれば、Luaの基本的な機能で引数を解析し、処理することができます。以下に簡単な例を示します:
-- setuplocal args = {...}-- enginefunction echo(p)print(p)for i,v in ipairs(args) doprint(i .. ": " .. v)for i,v in ipairs(args) doif args[i] == "--say" thenecho("echo: " .. args[i+1])
セットアップ・セクションでは、すべてのコマンド引数をargsという変数にダンプします。
エンジン・セクションで、echoという関数を作り、そこに入力されたものを表示します。
最後に、goセクションでargs変数のインデックスと値が解析されます。このサンプルコードでは、わかりやすくするために、最初のforループでは各インデックスと値のみを表示しています。
2番目のforループでは、インデックスを使用して最初の引数をチェックします。この例のコードで有効なオプションは --say だけです。ループが --say という文字列を見つけたら、echo 関数を呼び出し、現在の引数のインデックスを関数のパラメータとして与えます。
コマンド引数は1つ以上のスペースで区切ります。コードを実行して結果を確認してください:
$ lua ./echo.lua --say zombie apocalypse1: --say2: zombie3: apocalypseecho: zombie
ほとんどのユーザーは、コンピュータにコマンドを発行するときにスペースが重要であることを知っているので、3番目の引数を削除することは、この場合に期待される動作です。以下は、2つの有効な「エスケープ」方法を示す2つの亜種です:
$ lua ./echo.lua --say "zombie apocalypse"1: --say2: zombie apocalypseecho: zombie apocalypse$ lua ./echo.lua --say zombie\ apocalypse1: --say2: zombie apocalypseecho: zombie apocalypse
パージングパラメータ
パラメータを手動で解析するのは簡単で、依存性もありません。しかし、いくつかの詳細を考慮する必要があります。最近のコマンドのほとんどは、短いオプションと長いオプションの両方を許容しており、必要な引数が利用できない場合は、-hまたは--helpを提供するか、ヘルプメニューを表示します。
他のライブラリは 簡単にインストールできます。 ような、引数を解析するための追加インフラを提供する非常に素晴らしいツールもあります。




