Lua基礎總結

2021-06-17 16:54:51 字數 2844 閱讀 3669

本文總結了lua資料型別,表示式,基本語法。

lua單行注釋: --

多行注釋:--[[  --]]

全域性變數:不需要宣告,訪問乙個沒有初始化的全域性變數也不會出錯,只是結果是nil。刪除乙個全域性變數,只給他賦值nil,即b=nil。

lua資料型別(8種):nil,boolean,number,string,undata,function,thread,table

函式type 可以判斷變數或指定值的型別,

如:    print(type("hello lua "))      --> string

print(type(type))                 --> function

nil:    乙個全域性變數賦值之前預設是nil,給全域性變數賦nil 可以刪除該變數

boolean:    lua中所有的值都可以作為條件。在控制結構中,除了false和nil為假,其餘都為真,如 

0 和空串都是真。

numbers:    實數,lua中沒有整數。lua中可以處理任何長整數,不用考慮誤差。

strings:    指字元的序列。string和其他物件一樣,lua自動進行記憶體分配和釋放。

lua可以高效的處理長字串,1m的字串很常見。

lua可以使用單引號或雙引號表示字串,不過最好使用一種,除非兩種引號巢狀的情況。

還可以使用[[---]] 表示字串,這種方式可以包含多行。可以巢狀且不會解釋轉義序列。如果第乙個字元是換行會自動忽略。

這種方式的字串用來包含一段**是非常方便的。     

number與string的轉換:

lua會自動在string和number之間自動轉換,當乙個字串使用算術運算子時,string就會被轉成數字。 如:

print("10" + 1 )     --> 11            print("hello" + 1 )     -- error(cannt convert "hello")

數字轉換成string,使用字串連線符。。,當在數字後面加。。時必須加上空格,以免被解釋錯。

如:print(10 ..  20)       --> 1020   

顯示地轉換:使用tostring() ,tonumber() 

functions:函式和其他型別一樣,可以儲存在變數中,可以作為函式的引數,已可以是函式的返回值

userdata和thread:

userdata可以將c資料放入lua變數中,userdata只有賦值和相等比較操作。

表示式:

邏輯運算:and    or    not

關係運算:==    ~=    

如果兩個值型別不同,會返回false。

lua通過引用比較tables,userdata和thread,當且僅當兩者是同一物件時相等。

特殊的地方:只有false和nil 被認為是假

print(4  and  5 )        --> 5

print(nil and 13)        --> false

print(false and 13)  --> false

print(4  or  5 )            --> 4

print(false or 5)         --> 5

x = x or v;                 乙個很實用的技巧,當x為false或nil時,將v賦給x

c語言中的三元運算 a ? b : c , 在lua中等價於:(a  and  b) or c

字串連線運算:   「hello」。。「 lua」

table的構造:

example1:

days = ;

print(days[4])           --> wednesday

example2:

a =

等價於:a = {}  a.x = 0 , a.y = 0 

基本語法:

賦值語句:lua可同時為多個變數賦值,以逗號分隔。如: x ,y = y, x   交換兩個變數的值。

區域性變數和**塊: 使用local建立區域性變數。訪問區域性變數的速度比全域性變數快。

可以新增do。。end 來控制區域性變數的作用範圍。

控制結構語句:

條件語句:

if  condition1 then 

statement1

elseif  condition2  then  

statement2

else  

statementn

end;

while迴圈:

while  condition  do

statements;

end;

repeat-until迴圈:

repeat 

statements;

until  condition;

for迴圈有兩大類:

1. 數值for迴圈:

for var = exp1,exp2,exp3  do         (exp3可以省略,預設step=1)

loop- part;

end;

舉例:local found = nil;

for i=1,a.n do

if a[i] == value then

found = i;

break;        

end;

end;

2. 泛型for迴圈:

【待以後專門總結】

break語句:退出for,repeat,while迴圈

return語句:返回結果

Lua 基礎語法總結

第乙個 lua 程式 這是 lua 單行注釋的寫法 print start 多行注釋寫法 lua 區分大小寫 lua 的關鍵字 and break do else elseif end false for function if in local nil not or repeat return t...

Lua基礎學習 Lua函式

函式主要用途 1 是作為呼叫語句使用。2 作為賦值語句的表示式使用。語法 區域性 全域性 function fun name 引數列表 函式體endfunction 定義函式關鍵字注意 1 在使用 lua 函式 變數時一定要先定義函式 變數 2 lua 函式不支援引數預設值,可以使用 or 解決。如...

Lua資料總結

lua指令碼是乙個很輕量級的指令碼,也是號稱效能最高的指令碼,用在很多需要效能的地方,比如 遊戲指令碼,nginx,wireshark的指令碼,當你把他的原始碼下下來編譯後,你會發現直譯器居然不到200k,bin sh都要1m,macos平台 而且能和c語言非常好的互動。執行lua是類c的,是大小寫...