差分

ナビゲーションに移動 検索に移動

NeoLua

364 バイト追加, 2018年8月15日 (水) 09:40
=== ハロワ ===
まずは定番の[[ハロワ]]。dynamic変数にしておくとLua内のオブジェクトに直接手出しすることができる。。NeoLuaには2種類の実行環境がある。頭の固い人向けの静的版と、ユルユルな人向けのdynamic版である。CreateEnvironmentメソッドの戻り値の型を、「var」(型推論)にすると静的版に、「dynamic」にするとdynamic版になる。dynamic版は[[インテリセンス]]が効かない諸刃の剣でもある。dochunkは小文字だぞ。<source lang="csharp"> using (var lua = new Lua()) { dynamic g = lua.CreateEnvironment(); g.dochunk("s = 'hello world';","test"); Console.WriteLine(g.s); }</source>が効かない諸刃の剣であるが、ある程度慣れると圧倒的にこちらの方が便利かつ簡潔明瞭である。ちなみにdynamic版のdochunkは小文字だぞ。
こういう書き方もできる。
=== C#で関数を追加する ===
Luaでfunctionを書く方法だけでなく、CNeoLuaではLuaでfunctionを書く方法だけでなくC#で関数を追加することもできる。で関数を追加することもできる。NeoLuaではLua標準ライブラリの「os名前空間」が未実装だったりするので、日付・時間などを扱おうと思う場合は、この方法で実装すれば綺麗に決まる。Lua側からclr名前空間を叩いて実装する方法もあるがあんまり綺麗じゃない。<source>
using (var lua = new Lua())
{
</source>
dynamic版の場合だと更に簡潔明瞭。ちなみにdynamic版の場合だと更に簡潔明瞭。<source>
using (var lua = new Lua())
{
env.add = new Func<int,int,int>((a,b) => a+b);
}
</source> == 関連項目 ==
== 外部リンク ==
匿名利用者

案内メニュー