Blitz Lua 函數介面

lua-users home
wiki

此頁面說明由 BlitzMAX 編寫的 Lua 執行時間工作環境 BlitzLua「函數介面」。

BlitzLua 函數介面

「函數介面」直接將 BlitzMAX 函數對應到 Lua 對應函數。給定 BlitzMAX 模組的所有函數駐留在名稱是底層模組名稱的 Lua 表格中:例如,在 Lua 中,在模組 BRL.MaxGUI 找到的 BlitzMAX 函數 createWindow 會由 brl.maxgui.createWindow 複製(其中 brl 是全域表格)。選用的「import」機制讓給定模組的所有函數變成全域變數,移除必須加上其模組名稱作為開頭的需求。

MaxGuiExample 包含兩個簡單範例展示如何使用這個介面。

命名慣例

由於 Lua 是一種大小寫敏感的語言(而 BlitzMAX 不是),因此套用以下命名慣例

如果有任何不確定性,只要考慮此封裝中函數參考的部分即可。

參數處理和類型轉換

Lua 函數參數等於對應 BlitzMAX 函數的參數,尊重任何預設值(例如,對應 Lua 引數可能為 nil)。類型會如下轉換

此外,

請注意細節:因為 BlitzMAX 自己有「垃圾回收」,所以任何 BlitzMAX 物件都必須明指參考(在 BlitzMAX 本身內部!)才不會在建立後不久就被移除。這是由 BlitzMAX「句柄」(特定物件的一一代表)在內部執行 - 實際上,傳遞給 Lua 的是物件的句柄,而不是物件本身。因此,現在是 Lua 的責任要「摧毀」任何不再需要的 BlitzMAX 物件。所以,每個 BlitzMAX「createXXX」函式(或「loadXXX」或類似)用於建立 XXX 型別的物件,現在也都有一個「destroyXXX」對應函式(在同一個模組內)必須呼叫來移除那個物件。

任何 BlitzMAX 常數也都在定義模組所屬的表格內使用 - 它​​們的名稱以大寫保留(例如 brl.event.EVENT_WINDOWCLOSE)就像在 BlitzMAX 中一樣。

--AndreasRozek


最近的變更 · 偏好設定
編輯 · 歷史
最後編輯於 2007 年 5 月 19 日下午 6:18 格林威治標準時間 (差異)