「NeoLua」の版間の差分
ナビゲーションに移動
検索に移動
(→ハロワ) |
(→ハロワ) |
||
19行目: | 19行目: | ||
=== ハロワ === | === ハロワ === | ||
+ | dynamic変数にしておくとLua内のオブジェクトに直接手出しすることができる。[[インテリセンス]]が効かない諸刃の剣でもある。 | ||
dochunkは小文字だぞ。 | dochunkは小文字だぞ。 | ||
− | |||
<source lang="csharp"> | <source lang="csharp"> | ||
using (var lua = new Lua()) | using (var lua = new Lua()) |
2016年12月5日 (月) 05:25時点における版
NeoLuaとは、オープンソースの下で開発されている.NET Framework向けのLua実装である。
概要
.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」を追加しろ。 ← これ忘れがち
ハロワ
dynamic変数にしておくとLua内のオブジェクトに直接手出しすることができる。インテリセンスが効かない諸刃の剣でもある。 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]