詳解關於Lua指令碼文法說明學習教程

來源:互聯網
上載者:User

關於Lua指令碼文法說明學習教程是本文要介紹的內容,主要是來學習LUA指令碼語言。Lua 的文法比較簡單,學習起來也比較省力,但功能卻並不弱。

所以,我只簡單的歸納一下Lua的一些文法規則,使用起來方便好查就可以了。估計看完了,就懂得怎麼寫Lua程式了。

在Lua中,一切都是變數,除了關鍵字。

1、首先是注釋

寫一個程式,總是少不了注釋的。

在Lua中,你可以使用單行注釋和多行注釋。

單行注釋中,連續兩個減號"--"表示注釋的開始,一直延續到行末為止。相當於C++語言中的"//"。

多行注釋中,由"--[["表示注釋開始,並且一直延續到"]]"為止。這種注釋相當於C語言中的""。在注釋當中,"[["和"]]"是可以嵌套的在lua5.1中,中括弧中間是可以加若干個"="號的,如 [==[ ... ]==]),見下面的字串表示說明。

2、Lua編程

經典的"Hello world"的程式總是被用來開始介紹一種語言。在Lua中,寫一個這樣的程式很簡單:

 
  1. print("Hello world") 

在Lua中,語句之間可以用分號";"隔開,也可以用空白隔開。一般來說,如果多個語句寫在同一行的話,建議總是用分號隔開。

Lua 有好幾種程式控制語句,如:

注意一下,for的迴圈變數總是只作用於for的局部變數;當省略步進值時,for迴圈會使用1作為步進值。

使用break可以用來中止一個迴圈。

相對C語言來說,Lua有幾個地方是明顯不同的,所以面要特別注意一下:

.語句塊

語句塊在C中是用"{"和"}"括起來的,在Lua中,它是用do 和 end 括起來的。比如:

 
  1. do print("Hello") end 

可以在 函數 中和 語句塊 中定局部變數。

.指派陳述式

指派陳述式在Lua被強化了。它可以同時給多個變數賦值。

例如:

a,b,c,d=1,2,3,4

甚至是:

a,b=b,a  -- 多麼方便的交換變數功能啊。

在預設情況下,變數總是認為是全域的。假如需要定義局部變數,則在第一次賦值的時候,需要用local說明。比如:

local a,b,c = 1,2,3  -- a,b,c都是局部變數

.數值運算

和C語言一樣,支援 +, -, *, /。但Lua還多了一個"^"。這表示指數乘方運算。比如2^3 結果為8, 2^4結果為16。

串連兩個字串,可以用".."運處符。如:

 
  1. "This a " .. "string." -- 等於 "this a string" 

所有這些操作符總是返回true或false。

對於Table,Function和Userdata類型的資料,只有 == 和 ~=可以用。相等表示兩個變數引用的是同一個資料。比如:

 
  1. a={1,2}  
  2. b=a 
  3. print(a==b, a~=b)  --輸出 true, false  
  4. a={1,2}  
  5. b={1,2}  
  6. print(a==b, a~=b)  --輸出 false, true 

.邏輯運算

and, or, not

其中,and 和 or 與C語言區別特別大。

在這裡,請先記住,在Lua中,只有false和nil才計算為false,其它任何資料都計算為true,0也是true!

and 和 or的運算結果不是true和false,而是和它的兩個運算元相關。

a and b:如果a為false,則返回a;否則返回b

a or b:如果 a 為true,則返回a;否則返回b

舉幾個例子:

 
  1. print(4 and 5) --輸出 5  
  2. print(nil and 13) --輸出 nil  
  3. print(false and 13) --輸出 false  
  4. print(4 or 5) --輸出 4  
  5. print(false or 5) --輸出 5 

在Lua中這是很有用的特性,也是比較令人混洧的特性。

我們可以類比C語言中的語句:x = a? b : c,在Lua中,可以寫成:x = a and b or c。

最有用的語句是: x = x or v,它相當於:if not x then x = v end 。

.運算子優先順序,從低到高順序如:

3、關鍵字

關鍵字是不能做為變數的。Lua的關鍵字不多,就以下幾個:

小結:詳解關於Lua指令碼文法說明學習教程的內容介紹完了,希望通過本文的學習能對你有所協助!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.