Lua是動(dòng)態(tài)類(lèi)型語(yǔ)言,所以變量沒(méi)有類(lèi)型,僅值有類(lèi)型。值可以被存儲(chǔ)在變量中,作為參數(shù)傳遞,并作為結(jié)果返回。
在Lua中雖然我們沒(méi)有變量的數(shù)據(jù)類(lèi)型,但我們有類(lèi)型的值。用于數(shù)值數(shù)據(jù)類(lèi)型的列表在下面給出。
| 值類(lèi)型 | 描述 |
|---|---|
| nil | 用于區(qū)分具有一些數(shù)據(jù)或沒(méi)有(nil)數(shù)據(jù)的值。 |
| boolean | 包括true和false值。一般用于條件檢查。 |
| number | 表示真實(shí)(雙精度浮點(diǎn)數(shù))的數(shù)字。 |
| string | 表示字符數(shù)組。 |
| function | 表示是用C或Lua語(yǔ)言的方法。 |
| userdata | 表示任意C數(shù)據(jù)。 |
| thread | 獨(dú)立的執(zhí)行線(xiàn)程,它是用來(lái)實(shí)現(xiàn)協(xié)程。 |
| table | 代表普通數(shù)組,符號(hào)表,集合,記錄,圖,樹(shù)等,并實(shí)現(xiàn)關(guān)聯(lián)數(shù)組。它可以容納任何值(除了nil)。 |
在Lua中有一個(gè)叫做函數(shù)類(lèi)型,使我們能夠知道變量的類(lèi)型。如下一些例子給出了下面的代碼。
print(type("What is my type")) --> string
t=10
print(type(5.8*t)) --> number
print(type(true)) --> boolean
print(type(print)) --> function
print(type(type)) --> function
print(type(nil)) --> nil
print(type(type(ABC))) --> string
當(dāng)建立并執(zhí)行上面的程序,它在Linux下面會(huì)產(chǎn)生結(jié)果:
string number function function boolean nil string
默認(rèn)情況下,所有的變量將指向nil ,直到他們被分配一個(gè)值或初始化。在Lua中,0和空字符串被認(rèn)為是true,條件檢查也是如此。因此,必須使用布爾操作時(shí)要小心。我們?cè)谙旅娴恼鹿?jié)了解更多并使用這些類(lèi)型。