程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> 在Lua中使用模塊的基礎教程

在Lua中使用模塊的基礎教程

編輯:更多關於編程

       這篇文章主要介紹了在Lua中模塊的基本使用方法,是Lua入門學習中的基礎知識,需要的朋友可以參考下

      什麼是模塊?

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

      Lua模塊

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

       代碼如下:

      -- 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是沒有任何特殊的額外的代碼。

      函數規定

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

      示例

      讓我們考慮一個簡單的例子,其中一個函數具有數學運算功能,並允許調用此模塊作為mymath和文件名是mymath.lua。該文件的內容如下。

      代碼如下:

      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

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

      代碼如下:

      mymathmodule = require("mymath")

      mymathmodule.add(10,20)

      mymathmodule.sub(30,20)

      mymathmodule.mul(10,20)

      mymathmodule.div(30,20)

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

      代碼如下:

      30

      10

      200

      1.5

      需要記住的事情

      將模塊在同一個目錄下運行該文件。

      模塊名稱和它的文件名必須是相同的。

      這是返回模塊規定函數,因此該模塊也可以實現較好如上圖所示,就算能找到其他類型的實現別的地方的最佳實踐。

      實現模塊的老辦法

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

      代碼如下:

      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模塊的使用情況如下所示。

       代碼如下:

      require("mymath")

      mymath.add(10,20)

      mymath.sub(30,20)

      mymath.mul(10,20)

      mymath.div(30,20)

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

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved