lua運行環境的搭建比較簡單,可以去官網查看http://www.lua.org/download.html
1.1、Chunks
一個檔案或者互動模式下每一行都是一個chunks,一個chunks可以是一個語句,也可以是一系列語句,還可以函數,在Lua中MByte的Chunk很常見。
lua -i要求lua運行指定Chunk後進入互動模式
另外一個串連外部Chunk的方式是使用dofile函數,dofile函數負載檔案並執行他。
例如:
在互動模式下執行如下:
1.2、全域變數
全域變數不需要聲明,一個變數賦值之後即建立了該全域變數,沒有初始化結果的全域變數值為nil
當你刪除一個變數時只需將他的值賦為nil,當一個變數的值若且唯若不等於nil才存在。
1.3、詞法約定
字母或者底線開頭的字母、底線、數字序列。最好不要用底線+大寫字母。lua的保留字不能當標識符如下:
and,break,do,else,elseif,end,false,for,function,if,in,local,nil,not,or,repeat,return,then,true,until,while
1.4、命令列方式
lua [options][script][args]
-e:直接將命令傳入lua
-l:載入一個檔案
-i:進入互動模式
_PROMPT內建變數作為互動模式的提示符
在運行以前,Lua使用所有參數構造arg表。指令碼名索引為0,指令碼參數從1開始增加。指令碼前面的參數從-1開始減少。
lua -e “sin=math.sin” script a b
arg[-3]=”lua”
arg[-2]=”-e”
arg[-1]=”sin=math.sin”
arg[0]=”script”
arg[1]=”a”
arg[2]=”b”
2、類型和值
lua是動態語言,變數不要類型定義,Lua有8個基本類型:nil,boolean,number,string,userdata,function,thread和table。函數type可以測試給定變數值的類型
例如:
2.1nil
Lua中特殊類型,他只有一個值:nil,一個全域變數沒有被複製預設nil,給全域變數賦值nil可以刪除該變數
2.2Booleans
兩個取值false和true.lua中所有的值都可以作為條件。在控制結構條件中除了false和nil為假,其他值都為真。
2.3Numbers
表示實數,Lua中沒有整數。Lua中的numbers可以處理任何長整數不用擔心誤差
2.4Strings
字元序列,lua是8位位元組,所以字串可以包含任何數值字元。lua中字串是不可以修改的,你可以建立一個新的變數存放你要的字串
lua可以自動進行記憶體配置和釋放,一個string可以只包含一個字母也可以包含一本書,可以高效處理長字串,1M很正常
lua中的轉義:
\b –後退
\f –換頁
\n –換行
\r –斷行符號
\t –製表
\ –”\”
\” –雙引號
\’ –單引號
[ –左中括弧
] –右中括弧
例如:
還可以使用[[…]]表示字串,嵌套不需要轉義,可以換行
在運行時Lua會自動在string和numbers之間轉換
..在Lua中是字串串連符,當在一個數字後面寫..時必須加空格,防止被解釋錯
儘管字串和數值之間可以自動轉換,但是10==”10”是false,需要顯式的將字串使用tonumber()轉換,如果string不是正確的數字函數返回nil,反之可以將數字通過tostring()轉換為字串。
2.5functions
函數是第一類值,函數可以儲存在變數中,可以作為函數參數,也可以作為函數傳回值。
2.6userdata
userdata可以將C資料放在lua變數中,userdata在Lua中除了賦值和相等比較外沒有預定義操作。userdata用來描述應用程式或者使用C實現的庫建立的新類型。例如:用標準I/O庫來描述檔案。