nic*_*ckb 8 python syntax lua programming-languages decorator
我来自Python背景,非常喜欢Python装饰器的强大功能.
Lua是否支持装饰器?
我已阅读以下链接,但我不清楚:http: //lua-users.org/wiki/DecoratorsAndDocstrings
UPDATE
您是否也想过如果可能的话如何在Lua中实现它的示例.
您引用的页面中记录的"装饰器"(例如在这个中用于添加类型检查)与Python的奇怪命名的"装饰器语法"几乎没有关系,用于应用更高阶函数的特定方法(HOF) ) - 相反,在Lua的wiki中描述和使用的装饰器是一个Lua成语,用于支持将装饰器设计模式应用于Lua函数(通过保持"额外属性" - 例如文档字符串,类型检查函数等) - 在单独的全球表).
Lua确实支持HOF(我不确定你是否可以将函数名称重新绑定到将HOF应用到函数的结果,但是你可以轻松地,如维基页面所示,使用匿名的"原始函数"并且仅使用anon函数将名称绑定到HOF的结果作为arg).
Python的"装饰器语法"语法糖很好(而且,令我惊讶的是,似乎大多数Python教徒将HOF的使用增加了一个数量级! - )但是没有什么内在或必不可少的东西,你不能做在Lua中(和Lua的匿名函数围绕Python的愚蠢运行,lambda无论如何都有限- 就像在Javascript中一样,它们具有基本相同的功能,和几乎相同的语法,作为"普通"命名函数! - ).