與許多「(窗口)用戶」一樣,我不想花時間學習從源代碼編譯任何東西。 因此,對於一個業餘愛好者來說,Lua似乎是一個非常好的選擇。如何在命令行中列出模塊和檢查功能?
很抱歉,如果這是一個很簡單的問題 - 但是...
Q1。如何列出可用於解釋器的任何給定實例的模塊?
一些二進制發行版有一些編譯爲DLL的模塊,有些將它們添加到主EXE中。 很高興知道哪些模塊內置到EXE中,並檢查cpath是否找到任何其他DLL模塊。 Q2302。有沒有辦法在Lua的命令行獲得幫助?
因爲我是Lua的新手,我想要一個簡單的方法來獲得任何給定函數的幫助。 在一些解釋型語言中有一個幫助(「fname」)函數,Matlab就是一個很好的例子。
Q3。可以將GSL-Shell的這個功能修改爲幫助系統的基礎嗎? (即使它只是證實一個給定函數的存在,它會幫助)
local ffi = require 'ffi' local help_files = {'graphics', 'matrix', 'iter', 'integ', 'ode', 'nlfit', 'vegas', 'rng', 'fft'} local cdata_table = {'matrix', 'complex matrix', 'complex'} local function help_init(...) local REG = debug.getregistry() REG['GSL.help_hook'] = {} end local function open_module(modname) local fullname = string.format('help/%s', modname) local m = require(fullname) return m end local function search_help(func) for k, modname in ipairs(help_files) do local mt = getmetatable(func) local module = open_module(modname) if module[func] then local help_text = module[func] return help_text end end end help_init() -- declare a global function function help(x) local txt if type(x) == 'function' then txt = search_help(x) elseif type(x) == 'userdata' then local mt = getmetatable(x) if mt then txt = search_help(mt) end elseif type(x) == 'cdata' then local cname = gsl_type(x) if cname then txt = search_help(cname) end end --- Could we check that the function exists? print(txt or "No help found for the given function") end
Q1:沒有內置或真正集中的方式來做到這一點。我的建議是檢查[LuaDist](http://luadist.org/)和[LuaRocks](http://luarocks.org/)Lua軟件包管理器:) 另外...也許你會發現[LFW](http://code.google.com/p/luaforwindows/)(適用於Windows的Lua)項目很有用... – Kamiccolo