luaスクリプト言語クイックスタートチュートリアル

6041 ワード

luaは良い組み込み言語としてc/c++の補完として非常によく、ゲーム業界で広く応用されている.
ビジネス分野のルール言語に取り入れてもらえないか、ずっと考えています.ビジネスルールが常に変化する部分を抽出し、
プログラムを再コンパイルする必要はありません.ルールエンジンの役割として使用
使う前にもちろん取り付けなければなりません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