Lua中關於函數庫基本操作學習筆記

來源:互聯網
上載者:User

Lua中關於函數庫基本操作學習筆記是本文要介紹的內容,主要是來學習函數庫lua中的應用,具體內容來看本文詳解。基本函數庫Lua內建的函數庫,不需要額外裝載。

assert (v [, message])

功能:相當於C的斷言,

參數:

v:當運算式v為nil或false將觸發錯誤,

message:發生錯誤時返回的資訊,預設為"assertion failed!"

collectgarbage (opt [, arg])

功能:是垃圾收集器的通用介面,用於操作垃圾收集器

參數:

opt:操作方法標誌

"Stop": 停止垃圾收集器

"Restart": 重啟垃圾收集器

"Collect": 執行一次全垃圾收集迴圈

"Count": 返回當前Lua中使用的記憶體量(以KB為單位)

"Step": 逐步執行一個垃圾收集. 步長 "Size" 由參數arg指定 (大型的值需要多步才能完成),如果要準確指定步長,需要多次實驗以達最優效果。如果步長完成一次收集迴圈,將返回True

"Setpause": 設定 arg/100 的值作為暫訂收集的時間長度

"Setstepmul": 設定 arg/100 的值,作為步長的增幅(即新步長=舊步長*arg/100)

dofile (filename)

功能:開啟並且執行一個lua塊,當忽略參數filename時,將執行標準輸入裝置(stdin)的內容。返回所有塊的傳回值。當發生錯誤時,dofile將錯誤反射給調用者
註:dofile不能在保護模式下運行

error (message [, level])

功能:終止正在執行的函數,並返回message的內容作為錯誤資訊(error函數永遠都不會返回)

通常情況下,error會附加一些錯誤位置的資訊到message頭部.

Level參數指示獲得錯誤的位置,

Level=1[預設]:為調用error位置(檔案+行號)

Level=2:指出哪個調用error的函數的函數

Level=0:不添加錯誤位置資訊

_G全域環境表(全域變數)

功能:記錄全域環境的變數值的表 _G._G = _G

getfenv(f)

功能:返回函數f的當前環境表

參數:f可以為函數或調用棧的層級,層級1[預設]為當前的函數,層級0或其它值將返回全域環境_G

getmetatable(object)

功能:返回指定對象的元表(若object的元表.__metatable項有值,則返回object的元表.__metatable的值),當object沒有元表時將返回nil

ipairs (t)

功能:返回三個值 迭代函數、表、0

多用於窮舉表的鍵名和索引值對

 
  1. 如:for i,v in ipairs(t) do   
  2. end 

每次迴圈將索引賦級i,索引值賦給v

註:本函數只能用於以數字索引訪問的表 如:t={"1","cash"}

load (func [, chunkname])

功能:裝載一個塊中的函數,每次調用func將返回一個串連前一結的字串,在塊結尾處將返回nil

當沒有發生錯誤時,將返回一個編譯完成的塊作為函數,否則返回nil加上錯誤資訊,此函數的環境為全域環境

chunkname用於錯誤和調試資訊

loadfile ([filename])

功能:與load類似,但裝載的是檔案或當沒有指定filename時裝載標準輸入(stdin)的內容

loadstring (string [, chunkname])

功能:與load類似,但裝載的內容是一個字串

如:assert(loadstring(s))()

next (table [, index])

功能:允許程式遍曆表中的每一個欄位,返回下一索引和該索引的值。

參數:table:要遍曆的表

index:要返回的索引的前一索中的號,當index為nil[]時,將返回第一個索引的值,當索引號為最後一個索引或表為空白時將返回nil
 
註:可以用next(t)來檢測表是否為空白(此函數只能用於以數字索引的表與ipairs相類似)

ipairs (t)

功能:返回三個值 next函數、表、0

多用於窮舉表的鍵名和索引值對

 
  1. 如:for n,v in pairs(t) do   
  2. end 

每次迴圈將索引賦級i,索引值賦給v

註:本函數只能用於以鍵名索引訪問的表 如:t={id="1",name="cash"}

pcall (f, arg1, ···)

功能:在保護模式下調用函數(即發生的錯誤將不會反射給調用者)

當調用函數成功能返回true,失敗時將返回false加錯誤資訊

print (···)

功能:簡單的以tostring方式格式化輸出參數的內容

rawequal (v1, v2)

功能:檢測v1是否等於v2,此函數不會調用任何元表的方法

rawget (table, index)

功能:擷取表中指定索引的值,此函數不會調用任何元表的方法,成功返回相應的值,當索引不存在時返回nil

註:本函數只能用於以數字索引訪問的表 如:t={"1","cash"}

rawset (table, index, value)

功能:設定表中指定索引的值,此函數不會調用任何元表的方法,此函數將返回table

select (index, ···)

功能:當index為數字將返回所有index大於index的參數:如:select(2,"a","b") 返回 "b"

當index為"#",則返回參數的總個數(不包括index)

setfenv (f, table)

功能:設定函數f的環境表為table

參數:f可以為函數或調用棧的層級,層級1[預設]為當前的函數,層級0將設定當前線程的環境表

setmetatable (table, metatable)

功能:為指定的table設定元表metatable,如果metatable為nil則取消table的元表,當metatable有__metatable欄位時,將觸發錯誤

註:只能為LUA_TTABLE 表類型指定元表

tonumber (e [, base])

功能:嘗試將參數e轉換為數字,當不能轉換時返回nil

base(2~36)指出參數e當前使用的進位,預設為10進位,如tonumber(11,2)=3

tostirng(e)

功能:將參數e轉換為字串,此函數將會觸發元表的__tostring事件

type(v)

功能:返回參數的類型名("nil","number", "string", "boolean", "table", "function", "thread", "userdata")

unpack (list [, i [, j]])

功能:返回指定表的索引的值,i為起始索引,j為結束索引

註:本函數只能用於以數字索引訪問的表,否則只會返回nil 如:t={"1","cash"}

_VERSION

功能:返回當前Lua的版本號碼"Lua 5.1".

xpcall (f, err)

功能:與pcall類似,在保護模式下調用函數(即發生的錯誤將不會反射給調用者)

但可指定一個新的錯誤處理函數控制代碼

當調用函數成功能返回true,失敗時將返回false加err返回的結果。

小結:Lua中關於函數庫基本操作學習筆記的內容介紹完了,希望通過本文的學習能對你有所協助!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.