06
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Luaでオブジェクト指向っぽい何か

LuaにC#のクラス/構造体を使わせる例

Luaのインデクサについて
代入は添え字(文字列?)という変数(をつくってそれ)に代入します。
取得はその変数の値取得

型名の登録にはluanet.を頭に付けて以下型名っぽい
あと関数と変数のアクセスの違いに注意

コンストラクタにnewないっぽい全部値型になったりするんかね?

あと何でスクリプト言語のfor文はたいていC系のfor文ないんだろ
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using LuaInterface;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            new Program();

        }

        public Program()
        {
            using (LuaInterface.Lua lua = new Lua())
            {
                //登録、型名教える必要ないねん便利やね
                lua["point"] = new Point();
                lua.DoFile("test.lua");


                Console.ReadLine();
            }
        }

        public void Write(string s)
        {

            Console.Write(s);
        }

        
    }

    public struct Point
    {
        public int X, Y;
        public Point(int x, int y)
        {
            X = x;
            Y = y;
        }

        public void WritePoint()
        {
            Console.WriteLine("X:{0},Y:{1}",X,Y);
        }
    }

}

"test.lua"

Point = luanet.ConsoleApplication1.Point--型名の登録はluanet.(名前空間とか.)クラス名

p=Point(10,20) --コンストラクタにnewはなし
p:WritePoint() --関数のアクセスは:

point:WritePoint()
for i=0,10,1 do --このタイプのfor嫌い
p.X=i     --メンバへのアクセスは「.」
p.Y=i*i 
p:WritePoint()

point:WritePoint()
end

スポンサーサイト

Comment

Secret

検索フォーム

RSSリンクの表示

リンク

リンクというか個人的によく使うアルゴリズムの解説サイト… C#でなかったりする

ブロとも申請フォーム

この人とブロともになる

QRコード

QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。