Blitz Lua 常見問題 |
|
BlitzLua 是一個 Lua 執行時間環境,用 BlitzMAX 編寫而成,BlitzMAX 是一個快速且跨平台的 BASIC 編譯器,可用於 Windows 98/ME/2000/XP、MacOS X 和 Linux。
為何不使用完整使用者資料?
一個經常出現的問題是,為何作者不使用「完整使用者資料」(而不是「輕量級使用者資料」),因此就不會提供直接對應的物件和自動記憶體管理(透過使用 __gc
元方法)?
原因是 BlitzMAX 的垃圾回收:「完整使用者資料」物件只能「存在於 Lua 端」-在 BlitzMAX 中沒有任何參考,可以防止物件被「垃圾回收」。此外,沒有任何直接方法可以從 BlitzMAX 傳遞「完整使用者資料」物件到 Lua-因此,Lua 本身必須針對特定 BlitzMAX 物件(由指標提供)找出「完整使用者資料」物件。很自然地,解決這兩個問題便會導致如上述的實作。