初學Lua知識點

2021-06-22 16:33:57 字數 2570 閱讀 6134

1.

變數

變數沒有預定義的型別

,每乙個變數都可能包含任一種型別的值

nillua

中特殊的型別

,乙個全域性型別沒有被賦值以前預設值為

nil,

給全域性變數付

nil可以刪除該變數

boolean兩個取值

false

和true.

lua中所有值都可以作為條件

,在控制結構的條件中除了

false

和nil

為假,

其他都為真.所以

lua認為

0和空字串都是真.

number

lua中沒有整數

,只有實數.

stringlua是8

位位元組,

所以字串可以包含任何數值字元

,包括嵌入的0

轉義字元:

\a bell                                               \b back space -- 後退

\f form feed -- 

換頁                 

\n newline -- 

換行\r carriage return -- 

回車             

\t horizontal tab -- 

製表\v vertical tab                                      \\ backslash -- "\"

\" double quote -- 

雙引號            

\' single quote -- 

單引號\[ left square bracket -- 

左中括號     

\] right square bracket -- 

右中括號

還可以用

[[…]]

表示字串

,這種形式的字串可以包含多行可以巢狀且不會解釋轉義序列

.

執行時

,lua

會自動在

string

和number

之間自動進行型別轉換

.

2.

算術運算子

二元運算子:

+ - * / ^ (

加減乘除冪)

一元運算子:

- (負值)

這些運算子的運算元都是實數。

3.

關係運算子

<      >      <=    >=    ==    ~= ==

和~=比較兩個值,如果兩個值型別不同

lua認為兩者不同;

nil只和自己相等.

4.

邏輯運算子

and     or      not

邏輯運算子認為

false

和nil

是假(false

),其他為真,0也是

true.

and的優先順序比

or高。

a and b -- 如果a

為false

,則返回

a,否則返回b

a or b -- 如果a

為true

,則返回

a,否則返回b

c語言中的三元運算子

a ? b : c 在

lua中可以這樣實現:

(a and b) or c

5.

連線運算子

..  --

兩個點字串連線,如果運算元為數字,

lua將數字轉成字串

6.

優先順序

從高到低的順序: ^

not - (unary)

* /+ - ..

< > <= >= ~= ==

and or

除了^和

..外所有的二元運算子都是左連線的。

7.

表的構造

構造器是建立和初始化表的表示式。表是

lua特有的功能強大的東西。最簡單的建構函式是

{},用來建立乙個空表。可以直接初始化陣列

(第乙個元素索引為

1)

不管用何種方式建立

table

,我們都可以向表中新增或者刪除任何型別的域,建構函式僅僅影響表的初始化。

lua相關知識點筆記

require,用於載入檔案,會搜尋環境變數lua path設定的路徑,同時能判斷檔案是否已經載入來避免重複載入。比較奇特的是路徑的設定,與一般的路徑完全不同,其實就是用?當佔位符,然後require filename的時候,用filename代替這些文號,比如 lua c windows usr ...

Lua知識點 基礎 setfenv

1.概述 當我們在全域性環境中定義變數時經常會有命名衝突,尤其是在使用一些庫的時候,變數宣告 可能會發生覆蓋,這時候就需要乙個非全域性的環境來解決這問題。setfenv函式可以滿足我們 的需求。所謂函式的環境,其實乙個環境就是乙個表,該函式被限定為只能訪問該表中的域,或在函 數體內自己定義的變數。1...

Lua知識點 基礎 rawset

1.概述 rawset 2.例項 test.lua window window.prototype window.mt function window.new o setmetatable o window.mt return o endwindow.mt.index window.prototyp...