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

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

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

2024-07-21 23:04:52
字體:
供稿:網(wǎng)友

 什么是模塊?

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

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

 

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

讓我們考慮一個(gè)簡單的例子,其中一個(gè)函數(shù)具有數(shù)學(xué)運(yùn)算功能,并允許調(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模塊中的另一個(gè)文件moduletutorial.lua,則如下所示。

 

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

 

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

 

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

 

需要記住的事情

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

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

現(xiàn)在重新編寫相同的例子,其中使用包舊的方式。查看所有類型的實(shí)現(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)我們運(yùn)行上面,我們會(huì)得到相同的輸出。但建議在使用代碼的舊版本,它被認(rèn)為不太安全。使用Lua中像Corona SDK 編程的許多軟件開發(fā)工具包已經(jīng)過時(shí)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 精品亚洲夜色av98在线观看 | 国产午夜精品一区 | 91av在线免费 | 青青操国产 | 中国国语毛片免费观看视频 | 亚洲成人激情av | 免费观看亚洲视频 | 色屁屁xxxxⅹ免费视频 | 久久久久久久亚洲视频 | 欧美亚洲一区二区三区四区 | 大胆在线日本aⅴ免费视频 美国黄色毛片女人性生活片 | 久久久久久久久久久综合 | 国产精品久久久久久久娇妻 | 性盈盈盈影院 | 国产精品99久久久久久大便 | 国产系列 视频二区 | 免费a级黄色片 | 国产成人精品自拍视频 | 成人在线视频一区 | 无码专区aaaaaa免费视频 | 99麻豆久久久国产精品免费 | hdhdhd69ⅹxxx黑人| 一本色道久久综合亚洲精品图片 | 天天草天天爱 | 欧美第1页 | 一级做a爱片性色毛片 | 激情亚洲一区二区三区 | 欧美日韩国产一区二区三区在线观看 | 在线观看网址av | 亚洲欧美在线视频免费 | 九九热精品视频在线 | 欧美视频国产精品 | 久久国产精品久久久久久久久久 | 成人h精品动漫一区二区三区 | 欧美一级黄色网 | 爱福利视频 | 一级做受大片免费视频 | 午夜视频在线观看免费视频 | 成人免费福利网站 | 一级毛片在线看 | 男女一边摸一边做羞羞视频免费 |