對於指令碼語言lua,它採用的是自動記憶體管理機制,所以使用時無需考慮記憶體的釋放和分配,直接用即可
他的變數型別為以下8種:
nilnil是一種特殊的型別,它只有乙個值nil , 主要功能就是為了區別lua中其他的值,lua中的對於他的定義是一種「無效值」,類似於c++中的null
boolean其實就是傳統的布林型別,其型別包含的值有2個 ,顯而易見的:false和true,不過值得注意的是,在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 ...