lua模組編寫

2021-08-19 21:22:45 字數 864 閱讀 6792

lua允許我們編寫自定義模組以便後面呼叫,在編寫模組之前我們先認識2個知識點

1.lua語言中陣列,模組其實都是table**。

2.在之前的lua基本語法裡我們知道函式是可以賦值給變數的

好,我們新建乙個檔案my.lua**如下

local my = {}

my.name = '滄浪水'

my.url = 'www.freecls.com'

function my.say()

print('你好 '..my.name)

endfunction my:say_1()

print('你好 '..self.name)

endreturn my

其實就是宣告了乙個區域性**,**裡有name,url屬性名,然後分別把2個函式賦值個say和say_1兩個屬性,最後把這個**返回。

細心的朋友可能已經發現模組裡2個方法宣告方式不太一樣(點號和冒號),其實點號和冒號的區別很簡單

點號:函式內部不能用self來表示自己

冒號:函式內部可以用self來表示自己

接下來我們呼叫

--載入模組

local my = require 'my'

--你好 滄浪水

my.say()

--hello 滄浪水

my:say_1()

--報錯

--attempt to index local 'self' (a nil value)

my.say_1()

關於模組存放位置和預設搜尋路徑請參考《lua require模組載入機制》

Lua 編寫冒泡演算法

近期使用lua做熱更新的公司越來越多。為了跟上時代的腳步。熟練使用lua。也為了重溫好久不寫的演算法 冒泡演算法 bubble sort 時間複雜度 o n 2 演算法描述 比較相鄰的元素。如第乙個比第二個大,就相互交換 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對,這樣在最後的元素應...

用C C 編寫lua模組的一般模式

作為一種嵌入式語言,lua提供了一套完備的 c api來幫助 lua 與 宿主程式進行互動。因此使用 c 或者 c 來為lua編寫模組是很容易的。在 lstrlib.c 最後有這樣的 將函式名與實際呼叫函式記錄在乙個 struct 中,並組成乙個陣列 有點 lua 的趕腳 static const ...

使用Lua編寫Nginx伺服器的認證模組的方法

過去兩天裡,我解決了乙個非常有趣的問題。我用乙個nginx伺服器作為 需要能夠向其中新增乙個認證層,使其能夠使用外部的認證源 比如某個web應用 來進行驗證,如果使用者在外部認證源有賬號,就可以在 裡認證通過。需求一覽 我考慮了幾種解決方案,羅列如下 很顯然,給整個系統新增額外請求將執行的不是很好,...