麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 開發(fā) > 綜合 > 正文

Lua教程(三):值與類型介紹

2024-07-21 23:04:26
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Lua 是一種 動(dòng)態(tài)類型語(yǔ)言。 這意味著變量沒(méi)有類型,只有值才有類型。 語(yǔ)言中不存在類型定義。而所有的值本身攜帶它們自己的類型信息。

Lua 中的所有值都是一致 (first-class) 的。 這意味著所有的值都可以被放在變量里,當(dāng)作參數(shù)傳遞到另一個(gè)函數(shù)中,并被函數(shù)作為結(jié)果返回。

Lua 中有八種基本類型: nil, boolean, number, string, function, userdata, thread, and table. Nil 類型只有一種值 nil ,它的主要用途用于標(biāo)表識(shí)和別的任何值的差異; 通常,當(dāng)需要描述一個(gè)無(wú)意義的值時(shí)會(huì)用到它。 Boolean 類型只有兩種值:false 和 true。 nil 和 false 都能導(dǎo)致條件為假;而另外所有的值都被當(dāng)作真。 Number 表示實(shí)數(shù)(雙精度浮點(diǎn)數(shù))。 (編譯一個(gè)其它內(nèi)部數(shù)字類型的 Lua 解釋器是件很容易的事;比如把內(nèi)部數(shù)字類型改作 單精度浮點(diǎn)數(shù)或長(zhǎng)整型。參見(jiàn)文件 luaconf.h 。) String 表示一串字符的數(shù)組。 Lua 是 8-bit clean 的: 字符串可以包含任何 8 位字符, 包括零結(jié)束符 (‘/0′) (參見(jiàn) §2.1)。

Lua 可以調(diào)用(和處理)用 Lua 寫的函數(shù)以及用 C 寫的函數(shù)(參見(jiàn) §2.5.8).

userdata 類型用來(lái)將任意 C 數(shù)據(jù)保存在 Lua 變量中。 這個(gè)類型相當(dāng)于一塊原生的內(nèi)存,除了賦值和相同性判斷,Lua 沒(méi)有為之預(yù)定義任何操作。 然而,通過(guò)使用 metatable (元表) ,程序員可以為 userdata 自定義一組操作 (參見(jiàn) §2.8)。 userdata 不能在 Lua 中創(chuàng)建出來(lái),也不能在 Lua 中修改。這樣的操作只能通過(guò) C API。 這一點(diǎn)保證了宿主程序完全掌管其中的數(shù)據(jù)。

thread 類型用來(lái)區(qū)別獨(dú)立的執(zhí)行線程,它被用來(lái)實(shí)現(xiàn) coroutine (協(xié)同例程)(參見(jiàn) §2.11)。 不要把 Lua 線程跟操作系統(tǒng)的線程搞混。 Lua 可以在所有的系統(tǒng)上提供對(duì) coroutine 的支持,即使系統(tǒng)并不支持線程。

table 類型實(shí)現(xiàn)了一個(gè)關(guān)聯(lián)數(shù)組。也就是說(shuō), 數(shù)組可以用任何東西(除了nil)做索引,而不限于數(shù)字。 table 可以以不同類型的值構(gòu)成;它可以包含所有的類型的值(除 nil 外)。 table 是 lua 中唯一的一種數(shù)據(jù)結(jié)構(gòu);它可以用來(lái)描述原始的數(shù)組、符號(hào)表、集合、 記錄、圖、樹、等等。 用于表述記錄時(shí),lua 使用域名作為索引。 語(yǔ)言本身采用一種語(yǔ)法糖,支持以 a.name 的形式表示 a["name"]。 有很多形式用于在 lua 中創(chuàng)建一個(gè) table (參見(jiàn) §2.5.7)。

跟索引一樣, table 每個(gè)域中的值也可以是任何類型(除 nil外)。 特別的,因?yàn)楹瘮?shù)本身也是值,所以 table 的域中也可以放函數(shù)。 這樣 table 中就可以有一些 methods 了 (參見(jiàn)see §2.5.9)。

table, function ,thread ,和 (full) userdata 這些類型的值是所謂的對(duì)象: 變量本身并不會(huì)真正的存放它們的值,而只是放了一個(gè)對(duì)對(duì)象的引用。 賦值,參數(shù)傳遞,函數(shù)返回,都是對(duì)這些對(duì)象的引用進(jìn)行操作; 這些操作不會(huì)做暗地里做任何性質(zhì)的拷貝。

庫(kù)函數(shù) type 可以返回一個(gè)描述給定值的類型的字符串。

Lua 提供運(yùn)行時(shí)字符串到數(shù)字的自動(dòng)轉(zhuǎn)換。 任何對(duì)字符串的數(shù)學(xué)運(yùn)算操作都會(huì)嘗試用一般的轉(zhuǎn)換規(guī)則把這個(gè)字符串轉(zhuǎn)換成一個(gè)數(shù)字。 相反,無(wú)論何時(shí),一個(gè)數(shù)字需要作為字符串來(lái)使用時(shí),數(shù)字都會(huì)以合理的格式轉(zhuǎn)換為字符串。 需要完全控制數(shù)字怎樣轉(zhuǎn)換為字符串,可以使用字符串庫(kù)中的 format 函數(shù) (參見(jiàn) string.format)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 精品久久久久久久久久中出 | 超级av在线 | 免费一级毛片电影 | www.guochanav.com | 国产88久久久国产精品免费二区 | 中文字幕精品在线视频 | 免费观看一区二区三区 | 日韩美香港a一级毛片免费 日韩激情 | 成人在线a | 欧美特黄特色视频 | 中文在线日韩 | 一级α片免费看刺激高潮视频 | 国产成人av免费看 | 久久国产一| 久久久久久久九九九九 | 人人舔人人舔 | 欧美 日韩 三区 | 亚洲成人在线免费 | 日本成年网 | 国内久久久久 | 欧美成人午夜影院 | 一边吃奶一边摸下娇喘 | 天天干干| 一级毛片真人免费播放视频 | 在线观看网址av | 黄色毛片视频在线观看 | 视频一区二区中文字幕 | 国产69久久精品成人看 | 久久99精品久久久久久园产越南 | 91成人免费在线观看 | 91精品国产91久久久久久 | 九九热在线精品视频 | av免费大全 | 男女亲热网站 | 深夜激情视频 | 久久精品9 | 久草久视频 | 黄a大片| 日韩精品中文字幕一区二区三区 | 欧美成人一级 | 久久久久久久久久久久网站 |