「NeoLua」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
(カテゴリ:NeoLuaへの転送ページ)
 
(3人の利用者による、間の12版が非表示)
1行目: 1行目:
'''NeoLua'''とは、[[オープンソース]]の下で[[開発]]されている[[.NET Framework]]向けの[[Lua]]実装である。
+
#redirect [[category:NeoLua]]
 
 
== 概要 ==
 
[[.NET Framework]]向けの[[Lua]]実装は多数存在するが、それらは本家Luaの[[DLL]]を[[P/Invoke]]で呼び出すものが多い。
 
 
 
一方、NeoLuaは[[CLR]]でのピュア実装となっている。
 
つまり[[IronPython]]などと同じ系列である。
 
表向きの名前はNeoLuaであるが、内部的な名前空間は「Neo.IronLua」となっており、やはり「Iron〜」である。
 
NeoLuaは[[Portable Class Library]]([[PCL]])環境でも何も考えずに一発で動くように作られている点がポイント高い。[[Xamarin]]系、[[MonoGame]]系では大活躍である。
 
 
 
NeoLuaは「純正Lua」ではなく「Lua互換品」となるため互換性の心配があるがNeoLuaの公式サイトでは「100%」を謳っている。
 
ほんとかどうかは知らん。
 
互換性に問題があるようであれば[[NLua]]あたりを使ったほうがいいかもしれないが、NeoLuaの方が積極的にメンテナンスされており活況ではある。
 
 
 
== 使い方 ==
 
=== インストール ===
 
* NuGetからNeoLuaを入れろ。
 
* 参照に「Microsoft.CSharp」を追加しろ。  ← これ忘れがち
 
 
 
=== ハロワ ===
 
dochunkは小文字だぞ。
 
dynamic変数にしておくとLua内のオブジェクトに直接手出しすることができる。[[インテリセンス]]が効かない諸刃の剣でもある。
 
<source lang="csharp">
 
            using (var lua = new Lua())
 
            {
 
                dynamic g = lua.CreateEnvironment();
 
                g.dochunk("s = 'hello world';","test");
 
                Console.WriteLine(g.s);
 
            }
 
</source>
 
 
 
こういう書き方もできる。
 
「clr」で標準の名前空間にもアクセスできる。
 
<source lang="csharp">
 
            using (var lua = new Lua())
 
            {
 
                dynamic g = lua.CreateEnvironment();
 
                g.dochunk(@"
 
                    s = 'hello world';
 
                    clr.System.Console.WriteLine(s);
 
                ");
 
            }
 
</source>
 
 
 
== 関連項目 ==
 
 
 
== 外部リンク ==
 
* https://neolua.codeplex.com
 
* https://github.com/neolithos/neolua
 
 
 
== 参考文献 ==
 
{{reflist}}
 
 
 
{{stub}}
 
 
 
[category: Lua]
 

2018年10月22日 (月) 02:20時点における最新版