亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2015年03月28日 15:17:55   投稿:junjie  
這篇文章主要介紹了Lua教程(三):值與類型介紹,本文起講解了Lua的八種基本類型、userdata、thread、table等內(nèi)容,需要的朋友可以參考下

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

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

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

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

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

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

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

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

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

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

Lua 提供運行時字符串到數(shù)字的自動轉(zhuǎn)換。 任何對字符串的數(shù)學運算操作都會嘗試用一般的轉(zhuǎn)換規(guī)則把這個字符串轉(zhuǎn)換成一個數(shù)字。 相反,無論何時,一個數(shù)字需要作為字符串來使用時,數(shù)字都會以合理的格式轉(zhuǎn)換為字符串。 需要完全控制數(shù)字怎樣轉(zhuǎn)換為字符串,可以使用字符串庫中的 format 函數(shù) (參見 string.format)。

相關文章

  • Lua教程(十): 全局變量和非全局的環(huán)境

    Lua教程(十): 全局變量和非全局的環(huán)境

    這篇文章主要介紹了Lua教程(十): 全局變量和非全局的環(huán)境,本文講解了老的全局變量環(huán)境和Lua5中新的非全局環(huán)境相關知識,需要的朋友可以參考下
    2015-04-04
  • Lua性能優(yōu)化技巧(五):削減、重用和回收

    Lua性能優(yōu)化技巧(五):削減、重用和回收

    這篇文章主要介紹了Lua性能優(yōu)化技巧(五):削減、重用和回收,本文用多個實例講解了這三個優(yōu)化技巧,需要的朋友可以參考下
    2015-04-04
  • Lua利用cjson讀寫json示例分享

    Lua利用cjson讀寫json示例分享

    本文結合本人的實際使用經(jīng)驗和代碼示例,介紹如何在Lua中對json進行encode和decode,需要的朋友可以參考下
    2014-11-11
  • Lua中設置table為只讀屬性的方法詳解

    Lua中設置table為只讀屬性的方法詳解

    這篇文章主要給大家介紹了關于Lua中設置table為只讀屬性的方法,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-07-07
  • 獲取Lua表結構(table)數(shù)據(jù)實例

    獲取Lua表結構(table)數(shù)據(jù)實例

    這篇文章主要介紹了獲取Lua表結構(table)數(shù)據(jù)實例,本文使用lua_gettable函數(shù)獲取表結構,需要的朋友可以參考下
    2014-09-09
  • Lua教程(十三):弱引用table

    Lua教程(十三):弱引用table

    這篇文章主要介紹了Lua教程(十三):弱引用table,一個table的弱引用類型是通過其元表的__mode字段來決定的,如果該值為包含字符"k",那么table就是key弱引用,如果包含"v",則是value弱引用,如果兩個字符均存在,就是key/value弱引用,需要的朋友可以參考下
    2015-04-04
  • Lua返回一個Closures函數(shù)實例

    Lua返回一個Closures函數(shù)實例

    這篇文章主要介紹了Lua返回一個Closures函數(shù)實例,本文直接給出代碼實例,需要的朋友可以參考下
    2015-04-04
  • 如何使用Vim搭建Lua開發(fā)環(huán)境詳解

    如何使用Vim搭建Lua開發(fā)環(huán)境詳解

    這篇文章主要給大家介紹了關于如何使用Vim搭建Lua開發(fā)環(huán)境的相關資料,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-02-02
  • Lua教程(四):在Lua中調(diào)用C語言、C++的函數(shù)

    Lua教程(四):在Lua中調(diào)用C語言、C++的函數(shù)

    這篇文章主要介紹了Lua教程(四):在Lua中調(diào)用C語言、C++的函數(shù),本文給出了多個示例講解如何在Lua中調(diào)用C/C++寫的函數(shù),需要的朋友可以參考下
    2014-09-09
  • Lua中ipair和pair的區(qū)別

    Lua中ipair和pair的區(qū)別

    這篇文章主要介紹了Lua中ipair和pair的區(qū)別,ipair和pair都是用來遍歷table用的,需要的朋友可以參考下
    2014-09-09

最新評論