Lua神奇之旅~~lua中的變量

對於腳本語言lua,它採用的是自動內存管理機制,所以使用時無需考慮內存的釋放和分配,直接用即可

他的變量類型爲以下8種:

nil  nil是一種特殊的類型,它只有一個值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()					
	 		
end

Main = function()

end

上面2種寫法等價

a = Main()

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

thread lua中的線程變量類型

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章