模塊

2018-02-24 15:45 更新

模塊

Lua中有一個叫module的公有函數(shù),此函數(shù)的作用是將一組變量和函數(shù)打包在一個模塊名下,便于其他文件require。但是這個函數(shù)受到了諸多的指責,原因是其會創(chuàng)建一個公共變量,并且這個公共變量中的所有細節(jié)都會暴露出來。這其實十分不符合面向?qū)ο蟮囊?guī)范。

以下有一種辦法可以避免這個問題,即不采用module函數(shù)進行打包。

-- hello/mytest.lua

local  M  =  {}  -- 私有變量

local  function  test()  print(123)  end

function  M.test1()  test()  end

function  M.test2()  M.test1();  M.test1()  end

return  M  -- 關鍵

以下是導入此模塊的方法。

local  MT  =  require  "hello.mytest"

MT.test2()

Lua內(nèi)沒有類這個變量類型,但是通過Lua的metatable可以輕松實現(xiàn)類的繼承,多態(tài)等等特性。關于Lua中類的實現(xiàn)原理,請參考我之前寫的這篇博客:Lua中實現(xiàn)類的原理。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號