說我有喜歡跨腳本文件共享lua全局變量?
my_global = my_cpp_class()
my_global = nil
腳本趁現在這個正確調用my_cpp_class的析構函數,此代碼不:
my_global = my_cpp_class()
call_script("a.lua") -- a.lua contains "my_global = nil"
-- "call_script" is actually a simplified notation
-- I create script as userdata and then I can
-- set its child scripts that should be reloaded once script is modified
同樣的,當我簡單地dofile處理代替call_script。
基本上,我想要一個特定的腳本文件能夠將「無」分配給現有的全局,因此舊值變爲無法訪問。
現在我需要的是實時腳本重新加載 - 無論何時修改腳本文件,它都會立即編譯並在運行時再次使用call_script
與其子腳本調用,所以它應該導致全局變量被重新分配,值應該被垃圾收集。
是否有更容易,更喜歡的方式來做這樣的腳本重新加載?
我是否應該以某種方式使用本地或使用環境進行操作? 我使用luabind,如果它是相關的。
考慮在自己的_ENV內對沙箱進行沙箱處理,這樣您就可以爲重新加載的腳本提供新的環境,而不是清理舊的/常見的(可能丟失東西) – dualed