Lua   发布时间:2022-04-11  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了我的用于Lua的DSL会工作吗? (这似乎太简单了)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我真的很喜欢 @L_944_0@作为一种编程语言,但令人难以置信的是,我不得不经常为我所有的局部变量键入“local”.

它只是让我的代码看起来更混乱.

所以我想知道,我可以在Lua之上创建一个域特定语言(DSL)来简单地使用以下变量命名约定.

>如果变量名称在所有大写字母中,那么它是一个全局变量
>否则,变量是局部变量

问题:这是否有效 – 是或否?

换一种说法:

-- 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中的以下代码:

@H_677_13@myglobal = 10 local a = 1 if a > 1 then local b = 2 print b else local c = 3 print c + myglobal end

用我的DSL Lua:

@H_677_13@mYGLOBAL = 10 a = 1 if a > 1 then b = 2 print b else c = 3 print c + MYGLOBAL end

更新:

本地功能怎么样?

以下代码如何工作?

MyFunc = function (...)   -- local MyFunc = function (...)

我不确定我是否希望在所有上限中实现所有全局功能.

也许我只是忽略功能并需要“本地”标识符……想法?

解决方法

默认情况下,Moonscript已将所有变量设置为本地,您只需使用export关键字来声明全局变量.它是一种非常好的下一代,类似coffeescript的语言,它编译成Lua.我在以前使用Lua的地方使用它.
foo = 'bar' -- local
square (X) -> x*x -- local

-- globals
export square
export MY_GLOBAL = 12

export class Foo
    new: (bar) => @bar = bar -- self.bar = bar
    geT_Bar: => @bar

大佬总结

以上是大佬教程为你收集整理的我的用于Lua的DSL会工作吗? (这似乎太简单了)全部内容,希望文章能够帮你解决我的用于Lua的DSL会工作吗? (这似乎太简单了)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。