Lua神奇之旅 lua中的變數

2021-07-23 11:23:34 字數 2526 閱讀 8183

對於指令碼語言lua,它採用的是自動記憶體管理機制,所以使用時無需考慮記憶體的釋放和分配,直接用即可

他的變數型別為以下8種:

nilnil是一種特殊的型別,它只有乙個值nil , 主要功能就是為了區別lua中其他的值,lua中的對於他的定義是一種「無效值」,類似於c++中的null

boolean其實就是傳統的布林型別,其型別包含的值有2個 ,顯而易見的:falsetrue,不過值得注意的是,在lua中的條件值 「真」和「假」 卻不僅僅限於 false 和 true , 在lua中除了 false 和 nil ,其他所有的值都將被認作, 而 false 和 nil 都將會被認作是

number實數型別,其實說白了就是c++ 中的double型別,乙個雙精度浮點數。

string字串型別,lua中的字元統一採用8位字元編碼,其實類似於c++中的string 型別,特點是這個字串非常高效,在lua中處理100k或1m的字串很正常

字面字串需要一對 「」 或 『』 來界定 :例如a = "string"

順便說一句,lua中支援轉義字元序列,說白了就是『\n』等於 回車 這種,具體的定義如下表:

\a

響鈴

\b

退格

\f

提供**

\n

換行

\r

回車

\t

水平tab

\v

垂直tab

\\

反斜槓

\"

雙引號

\'

單引號

還可以用\數字將其轉化為對應的 字元 , 其實類似於c++中的ascll編碼

還有lua中的字串連線可以通過..來實現  ,樣例:str = "aaaa".."bbb"

table表型別,類似於c++中的字典,允許以類似於鍵值對的方式來索引值

table的宣告總是通過構造式{}來實現 , 樣例:b = {}

然後用法嘛!,就放蕩多了,分別為

a[x] = 10

a.x = 10

a["x"]= 10

附註:上面2式是等價的,或者說 a.x = a["x"]

鍵的型別可以是數值或者是字串

順便說一句 table的數值索引預設為 1

function函式型別

在lua中函式是「第一類值」,也就是基礎型別,這些函式可以儲存在變數中,並可以被隨意賦值給其他變數,感覺有點像函式指標,說白了,我們定義的函式變數其實都是乙個函式指標,其值預設為我們宣告的函式,我們通過常規的賦值來講這些函式賦給其他的變數,對於lua中函式的呼叫方法與c++中一致,直接用就對了~~

順便說一句,由於lua是弱型別,所以無法顯式地宣告返回值型別,任何函式都可以選擇接收返回值,如果該函式本身不返回值的話,則預設返回的是nil

編寫樣例如下:

function main()					

endmain = function()

end上面2種寫法等價

a = main()

userdata該型別可以將任意的c語言資料儲存到lua變數中,但是只能進行賦值和相等性測試

threadlua中的執行緒變數型別

lua認識 lua 中的變數

認識lua中的變數 在lua所有變數都不需要在使用前宣告,同樣不需要指定變數的型別 int,char,string 因為變數的型別 取決於使用者給它賦的值.lua中的所有變數的資料型別不是顯示的,它隨著它的賦值而變動,但我們基於該變數作用範圍分為 三種型別 全域性變數 所有的變數預設是全域性 除非顯...

開啟Lua之旅

lua作為指令碼語言,和python一樣,即可以在互動模式執行命令,也可以將命令彙總在一起形成乙個指令碼檔案。lua執行的每段 例如乙個源 檔案或在互動模式中輸入的一行 都稱為乙個 程式塊 乙個程式塊就是一連串的語句或命令。在lua中幾條連續的lua語句之間並不需要分隔符,如如果願意,也可以使用分號...

Lua中的虛變數

programming in lua 中有一段使用虛變數的 一些新手不太了解含義,這裡講解一下。乙個典型的方法是使用虛變數 下劃線 local x string.find s,p now use x lua的函式可以具有多個返回值,比如下面的示例 print string.find example ...