4

私は最近、lua でコンピューターをコーディングできる Computer Craft (Mod for Minecraft) に取り掛かりました。

「水ステータス」に移動したいのですが、「水」をロードし、変数を「ステータス」またはその場所の他の単語/文字列に設定して、何にでも使用できるようにします。それをパラメーターと呼ぶのでしょうか?

os.run( environment, prgmpath, arguments ) 

どのような環境かわかりません。prgmpath は water で、引数は status でしょうか? そこからそれらの引数を取得する方法がわかりません。

ええ、私はかなり混乱しています=/

できる限り説明しようとしました、ありがとう、Jazza

周りを検索した後、私は自分の答えを見つけたと思います。

lua water arg1

コマンドラインに入ります

derp = arg[2]

ファイルに入りますか?

編集:もう少し潜んでいると、次のことがわかりました:

derp = ...
print(derp)

ファイルと:

file hi

こんにちはと出力されたので、うまくいくと思いますが、これ以上 D= を追加できないようです

4

1 に答える 1

1

os.run は、その mod 用に特別に作成された os ライブラリの拡張機能です。wikiのドキュメントによると:

  • environment は、prgmpath で実行しているスクリプトの状態を設定するためのメタテーブルです
  • 引数は、prgmpath のスクリプトにある、呼び出しているコードに渡したいものです

つまり、基本的に、path/to/file.lua で特定の処理を実行するようにコードを設定していて、それが外部の状態に依存している場合、呼び出しファイルでその状態を設定し、環境 (またはそのサブセット) を file.lua のコードに、os.run() の最初のパラメーターにテーブルとして渡すことで渡します。

引数は、file.lua で呼び出す関数に渡したい引数のテーブルであると想定されています。file.lua にある場合...

function doSomething(arg1, arg2, arg3)
    ...
end

テーブルを作成してこのように渡すことで、arg1、arg2、および arg3 を doSomething に渡します...

local args = {"arg1Val", {}, 1234}
os.run({}, '/path/to/file.lua', args)

次に、os.run は、file.lua 内の関数 doSomething() に対して空の環境をセットアップし、args 内の 3 つの値を関数に渡します。

わかる?

于 2012-05-14T00:53:12.997 に答える