luaスクリプト言語クイックスタートチュートリアル
ビジネス分野のルール言語に取り入れてもらえないか、ずっと考えています.ビジネスルールが常に変化する部分を抽出し、
プログラムを再コンパイルする必要はありません.ルールエンジンの役割として使用
使う前にもちろん取り付けなければなりませんhttp://www.lua.org/Luaをダウンロードv 5.1.4.23.exeインストール、インストール後実行
lua.exeで行ごとに解釈したり、スクリプトを書き終わったらlExecutor.wluaで実行したりできます.
1)とりあえずハローワールド
> print 'helloWorld'
helloWorld
> print("helloWorld") -- !
helloWorld
> a='hello'
> print(a)
hello
2)主なタイプ
> a=1
> b="abc"
> c={}
> d=print
>
> print(type(a))
number
> print(type(b))
string
> print(type(c))
table
> print(type(d))
function
>
上記のようにluaには主に4つのタイプ、すなわち数字、文字列、table(javascriptと理解できるobject)、関数タイプがあります.
もちろん、最も一般的なbool型もあります.trueやfalse、(ここではnilやuserdata、threadなどは考慮しません)
関数タイプの変数に「()」を付けると、次のように実行できます.
> d(b)
abc
3)変数および定数、文字列
> a,b,c,d = 1,2,'c',{1}
> print (a,b,c,d)
2 c table: 0041BC58
> a="single 'quoted' string and double \"quoted\" string inside"
> b='single \'quoted\' string and double "quoted" string inside'
> c= [[ multiple line
>> with'single'
>> and "double" quoted strings inside.]]
>
> print(a)
single 'quoted' string and double "quoted" string inside
> print(b)
single 'quoted' string and double "quoted" string inside
> print(c)
multiple line
with'single'
and "double" quoted strings inside.
> a=a.." " -- ..
> print(a)
single 'quoted' string and double "quoted" string inside
luaの特別なところに注目してみましょう
1.変数を宣言し、変数に値を付けるときは、複数の変数を一緒に値を付けることができます.2.文字列定数は、二重引用符と一重引用符で囲むことができます.また、混用するときは、文字をエスケープする必要はありません.phpと少しタイプがあります.また、「[[]」で囲むこともできます.
これはc#の文字列に@記号を付けることができ、文字列内のフォーマットを保持することができます.
4)論理制御文
> a=10 -- , , pl/sql
> if a==10 then
>> print(" 10")
>> elseif a== 11 then
>> print(" 11")
>> else
>> print(" ")
>> end
10
5)循環構造
> -- while
> a=1
> while a~=10 do
>> io.write(a.." ")
>> a=a+1
>> end
1 2 3 4 5 6 7 8 9 >
> -- repeat、until
> a=0
> repeat
>> a=a+1
>> print(a)
>> until a==5
1
2
3
4
5
> -- for
> for a=1,4 do
>> io.write(a)
>> end
1234>
> -- , , 2
13> for a=1,4,2 do
>> io.write(a..' ')
>> end
1 3 > for a=1,5,2 do
>> io.write(a.. ' ')
>> end
1 3 5 >
6)関数とその使用
> --1.
> function myFunc1()
>> print("hello function")
>> end
> myFunc1()
hello function
> --2.
> a=1
> b=2
> function myFunc2(par1,par2)
>> return par1+par2
>> end
> c=myFunc2(a,b)
> print(c)
> --3.
> a=1
> b=2
> function myFunc3(A,B)
>> return B,A
>> end
> c = myFunc3(a,b) --c , 2
> print(c)
> c,d=myFunc3(a,b) --
> print(c,d)
1
> print(myFunc3(a,b)) --
1
> --4.
> function myFunc4()
>> print()
>> end
> myFunc4(a,b,c,d)
2 2 1
7)table(objectを理解してもいいと思う)の使用
> linbc={}
> linbc.sex = " "
> linbc.age = 27
> print(linbc,linbc.sex,linbc["age"])
table: 0041ED50 27
> A=linbc
> print(A["sex"])
> print(A) -- , A linbc
table: 0041ED50
> -- , javascript
> -- hashmap
> for i,v in pairs(linbc) do
>> print(i,v)
>> end
age 27
sex
> -- , 1
> arr={1,2,3,"a",'b',linbc}
> for i,v in pairs(arr) do
>> print(i,v)
>> end
1
2
3
a
b
table: 0041ED50
> -- ,
> table.insert(arr,A)
> table.foreach(arr,function(i,v) print(v) end)
a
b
table: 0041ED50
table: 0041ED50
> -- , foreach,
> --
> print(arr[1])
> -- table.insert ,
> table.insert(linbc,"hello")
> print(arr[1])
1