我真的很喜欢Lua作为一种编程语言,但是,我不得不不断地local
为我的所有局部变量输入“”,这让我难以置信。
它只会让我的代码看起来更混乱。
所以我想知道,我是否可以在 Lua 之上创建一个领域特定语言(DSL)来简单地具有以下变量命名约定。
- 如果变量名全部大写,那么它是一个全局变量
- 否则,变量是
local
变量
问题:这行得通吗?是或否?
换句话说:
-- In Lua 5.2
isGlobalinLua = "is global in default Lua"
GLOBALVAR = "is global var in default Lua"
local localvar = "is local var in default Lua"
-- In my DSL Lua language
isLocalinDSLLua = "is local in DSL Lua" -- translates to: local isLocalinDSLLua = ...
GLOBALVAR = "is global DSL Lua"
localvar = "is local var in DSL Lua" -- translates to: local localvar = ...
所以现在,默认 Lua 中的以下代码:
myglobal = 10
local a = 1
if a > 1 then
local b = 2
print b
else
local c = 3
print c + myglobal
end
使用我的 DSL Lua:
MYGLOBAL = 10
a = 1
if a > 1 then
b = 2
print b
else
c = 3
print c + MYGLOBAL
end
更新:
局部函数呢?
以下代码将如何工作?
myfunc = function (...) -- local myfunc = function (...)
我不确定我是否想让每个全局函数都大写。
也许我只是忽略函数并需要' local
'标识符......想法?