1

Lua モジュールの使用方法を学ぼうとしています。次のマニュアルを読んでいます。

http://lua-users.org/wiki/ModulesTutorial

残念ながら、最初の例を機能させることさえできません! 私は次のことをしました:

次のような「mymodule.lua」ファイルを作成しました。

local mymodule = {}

function mymodule.foo()
    print("Hello World!")
end

return mymodule

次に、コマンドラインから、 mymodule.lua ファイルが存在するフォルダー内で、次のことを試みました。

mymodule = require "mymodule"

しかし、次のエラー メッセージが表示されます。

myserver:/usr/share/x/research/# mymodule = require "mymodule"
-ash: mymodule: not found

これは機能します:

myserver:/usr/share/x/research/# local mymodule = require "mymodule"

しかし、foo() メソッドを実行しようとすると、次のように失敗します。

myserver:/usr/share/x/research/# mymodule.foo()
-ash: syntax error: bad function name
myserver:/usr/share/x/research/#

コマンドラインで mymodule をグローバルではなくローカルとして宣言したため、これは理にかなっていると思います。

私の質問は、コマンドラインでモジュールをグローバルに宣言できない理由だと思います。
マニュアルには、これを「対話型インタープリター」から実行する必要があると書かれています。Linuxで標準のコマンドライン/ターミナルウィンドウを使用しています...これが問題になる可能性はありますか? 通常、すべての lua コマンドの前に「lua」を付ける必要があります。

任意の提案をいただければ幸いです。

4

1 に答える 1

2

lua はシェルではありません。シェルプロンプトではなく、lua インターピーター内からそのコードを実行する必要があります。

myserver:/usr/share/x/research/# lua
Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
> mymodule = require "mymodule"
> mymodule.foo()
于 2013-08-01T14:38:31.063 に答える