鍍金池/ 教程/ Java/ 數(shù)據(jù)類(lèi)型
數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)
循環(huán)
數(shù)組
錯(cuò)誤處理
面向?qū)ο?/span>
調(diào)試
游戲開(kāi)發(fā)
文件 I/O
變量
迭代器
Web 編程
模塊
函數(shù)
元表
協(xié)程
垃圾回收機(jī)制
標(biāo)準(zhǔn)庫(kù)
決策
數(shù)據(jù)類(lèi)型
運(yùn)行環(huán)境
操作符
字符串
基本語(yǔ)法
概述

數(shù)據(jù)類(lèi)型

Lua 是動(dòng)態(tài)類(lèi)型編程語(yǔ)言,變量沒(méi)有類(lèi)型,只有值才有類(lèi)型。值可以存儲(chǔ)在變量中,作為參數(shù)傳遞或者作為返回值。

盡管在 Lua 中沒(méi)有變量數(shù)據(jù)類(lèi)型,但是值是有類(lèi)型的。下面的列表中列出了數(shù)據(jù)類(lèi)型:

值類(lèi)型 描述
nil 用于區(qū)分值是否有數(shù)據(jù),nil 表示沒(méi)有數(shù)據(jù)。
boolean 布爾值,有真假兩個(gè)值,一般用于條件檢查。
number 數(shù)值,表示實(shí)數(shù)(雙精度浮點(diǎn)數(shù))。
string 字符串。
function 函數(shù),表示由 C 或者 Lua 寫(xiě)的方法。
userdata 表示任意 C 數(shù)據(jù)。
thread 線(xiàn)程,表示獨(dú)立執(zhí)行的線(xiàn)程,它被用來(lái)實(shí)現(xiàn)協(xié)程。
table 表,表示一般的數(shù)組,符號(hào)表,集合,記錄,圖,樹(shù)等等,它還可以實(shí)現(xiàn)關(guān)聯(lián)數(shù)組。它可以存儲(chǔ)除了 nil 外的任何值。

type 函數(shù)

Lua 中有一個(gè) type 函數(shù),它可以讓我們知道變量的類(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

在 Linux 系統(tǒng)中運(yùn)行上面的代碼可以得到如下的結(jié)果:

string
number
function
function
boolean
nil
string

默認(rèn)情況下,在被初始化或賦值前,所有變量都指向 nil。 Lua 中空字符串和零在條件檢查時(shí),都被當(dāng)作真。所以你在使用布爾運(yùn)算的時(shí)候要特別注意。在下一章中,我們會(huì)了解到更多關(guān)于這些類(lèi)型的知識(shí)。