主頁 > 知識庫 > 在Lua中使用模塊的基礎(chǔ)教程

在Lua中使用模塊的基礎(chǔ)教程

熱門標(biāo)簽:百度地圖標(biāo)注早餐區(qū)域 清朝地圖標(biāo)注哈爾濱 冀州市地圖標(biāo)注 武漢外呼防封系統(tǒng)多少錢 怎么去除地圖標(biāo)注 新岸線智能電銷機器人 個人怎么在地圖標(biāo)注需要的店鋪 漳州智云呼電話機器人 地圖標(biāo)注大廈

 什么是模塊?

模塊是一個像,可以使用需要加載并有包含表中的單個全局命名的庫。該模塊可包含若干函數(shù)和變量。所有這些函數(shù)和變量被包裹在以它作為一個命名空間的表。也是一個很乖的模塊有必要的規(guī)定,返回此表上所需要的。
Lua模塊

表中的模塊的使用可以幫助我們以多種方式,使我們能夠操縱模塊中我們操縱任何其他lua的表相同的方式。作為操縱模塊的能力的結(jié)果,它提供了額外的功能的量等語言需要特殊的機制。由于lua模塊,這個免費的方式下,用戶可以調(diào)用Lua函數(shù)以多種方式。如下面幾個:

復(fù)制代碼 代碼如下:
-- Assuming we have a module printFormatter
-- Also printFormatter has a funtion simpleFormat(arg)
-- Method 1
require "printFormatter"
printFormatter.simpleFormat("test")

-- Method 2
local formatter = require "printFormatter"
formatter.simpleFormat("test")

-- Method 3
require "printFormatter"
local formatterFunction = printFormatter.simpleFormat
formatterFunction("test")

在上面的示例代碼中,可以看到如何靈活的編程Lua是沒有任何特殊的額外的代碼。
函數(shù)規(guī)定

Lua提供了一個名為規(guī)定加載所有必要的模塊高級函數(shù)。它被保持盡可能的簡單,以避免對模塊太多的信息,以將其加載。該規(guī)定函數(shù)只是假定模塊作為一個代碼塊定義一些值,這實際上是函數(shù)或者包含函數(shù)表。
示例

讓我們考慮一個簡單的例子,其中一個函數(shù)具有數(shù)學(xué)運算功能,并允許調(diào)用此模塊作為mymath和文件名是mymath.lua。該文件的內(nèi)容如下。

復(fù)制代碼 代碼如下:
local mymath =  {}
function mymath.add(a,b)
   print(a+b)
end

function mymath.sub(a,b)
   print(a-b)
end

function mymath.mul(a,b)
   print(a*b)
end

function mymath.div(a,b)
   print(a/b)
end

return mymath 

現(xiàn)在為了訪問該lua模塊中的另一個文件moduletutorial.lua,則如下所示。

復(fù)制代碼 代碼如下:
mymathmodule = require("mymath")
mymathmodule.add(10,20)
mymathmodule.sub(30,20)
mymathmodule.mul(10,20)
mymathmodule.div(30,20)

為了運行這些代碼,我們需要把在同一個目錄下2 個lua文件,或者也可以放在包路徑的模塊文件,并需要產(chǎn)生額外的設(shè)置。當(dāng)我們運行上面的程序,會得到下面的輸出。

復(fù)制代碼 代碼如下:
30
10
200
1.5

需要記住的事情

  •     將模塊在同一個目錄下運行該文件。
  •     模塊名稱和它的文件名必須是相同的。
  •     這是返回模塊規(guī)定函數(shù),因此該模塊也可以實現(xiàn)較好如上圖所示,就算能找到其他類型的實現(xiàn)別的地方的最佳實踐。

實現(xiàn)模塊的老辦法

現(xiàn)在重新編寫相同的例子,其中使用包舊的方式。查看所有類型的實現(xiàn)。這是在使用Lua版本5.1和5.0。math模塊如下所示。

復(fù)制代碼 代碼如下:
module("mymath", package.seeall)

function mymath.add(a,b)
   print(a+b)
end

function mymath.sub(a,b)
   print(a-b)
end

function mymath.mul(a,b)
   print(a*b)
end

function mymath.div(a,b)
   print(a/b)
end

moduletutorial.lua模塊的使用情況如下所示。

復(fù)制代碼 代碼如下:
require("mymath")
mymath.add(10,20)
mymath.sub(30,20)
mymath.mul(10,20)
mymath.div(30,20)

當(dāng)我們運行上面,我們會得到相同的輸出。但建議在使用代碼的舊版本,它被認為不太安全。使用Lua中像Corona SDK 編程的許多軟件開發(fā)工具包已經(jīng)過時。

您可能感興趣的文章:
  • Lua教程(十一):模塊與包詳解
  • Lua模塊與包學(xué)習(xí)筆記
  • Lua中的模塊(module)和包(package)詳解
  • Lua的函數(shù)環(huán)境、包實例講解
  • Lua調(diào)用自定義C模塊
  • Lua中使用模塊的一些基礎(chǔ)知識
  • 使用Lua編寫Nginx服務(wù)器的認證模塊的方法
  • Lua極簡入門指南(六):模塊
  • Lua模塊和模塊載入淺析
  • Lua中的模塊與module函數(shù)詳解
  • 解析Lua中的全局環(huán)境、包、模塊組織結(jié)構(gòu)

標(biāo)簽:宣城 金昌 德宏 濰坊 天門 儋州 天門 臺灣

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《在Lua中使用模塊的基礎(chǔ)教程》,本文關(guān)鍵詞  在,Lua,中,使用,模塊,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《在Lua中使用模塊的基礎(chǔ)教程》相關(guān)的同類信息!
  • 本頁收集關(guān)于在Lua中使用模塊的基礎(chǔ)教程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章