「NeoLua」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
26行目: 26行目:
 
                 g.dochunk("s = 'hello world';","test");
 
                 g.dochunk("s = 'hello world';","test");
 
                 Console.WriteLine(g.s);
 
                 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>
 
</source>

2016年12月5日 (月) 05:23時点における版

NeoLuaとは、オープンソースの下で開発されている.NET Framework向けのLua実装である。

概要

.NET Framework向けのLua実装は多数存在するが、それらは本家LuaのDLLP/Invokeで呼び出すものが多い。

一方、NeoLuaはCLRでのピュア実装となっている。 つまりIronPythonなどと同じ系列である。 表向きの名前はNeoLuaであるが、内部的な名前空間は「Neo.IronLua」となっており、やはり「Iron〜」である。 NeoLuaはPortable Class LibraryPCL)環境でも何も考えずに一発で動くように作られている点がポイント高い。Xamarin系、MonoGame系では大活躍である。

NeoLuaは「純正Lua」ではなく「Lua互換品」となるため互換性の心配があるがNeoLuaの公式サイトでは「100%」を謳っている。 ほんとかどうかは知らん。 互換性に問題があるようであればNLuaあたりを使ったほうがいいかもしれないが、NeoLuaの方が積極的にメンテナンスされており活況ではある。

使い方

インストール

  • NuGetからNeoLuaを入れろ。
  • 参照に「Microsoft.CSharp」を追加しろ。  ← これ忘れがち

ハロワ

dochunkは小文字だぞ。

            using (var lua = new Lua())
            {
                dynamic g = lua.CreateEnvironment();
                g.dochunk("s = 'hello world';","test");
                Console.WriteLine(g.s);
            }

こういう書き方もできる。 「clr」で標準の名前空間にもアクセスできる。

            using (var lua = new Lua())
            {
                dynamic g = lua.CreateEnvironment();
                g.dochunk(@"
                    s = 'hello world';
                    clr.System.Console.WriteLine(s);
                ");
            }

関連項目

外部リンク

参考文献


[category: Lua]