Lua 中的自文档参数
2018-2-3 11:39:14
收藏:0
阅读:105
评论:1
我正在寻找一种方式来澄清我的 Lua 函数的契约。特别是,哪些属性是参数应该具备的。
为了说明我的问题,这里是一些代码片段,展示我的当前代码的典型结构。一个用两个公共函数构建一个新的"实例"的函数。
local function newTextPrinter(color)
return {
print = function(textToPrint)
PrintText(textToPrint, 20, color, 5, 'center');
end,
printBig = function(textToPrint)
PrintText(textToPrint, 30, color, 5, 'center');
end
}
end
一个接受一个参数的函数,该参数应具有相同的签名(或超集)。
local function printSomeStuff(textPrinter)
textPrinter.print("some")
textPrinter.printBig("stuff")
end
调用后面的函数
local textPrinter = newTextPrinter("ffffffff")
printSomeStuff(textPrinter)
这段代码的问题在于,你无法知道提供给printSomeStuff的textPrinter参数应该长成什么样,而不用查看printSomeStuff的实现。虽然通过这个例子很容易做到这一点,但通常情况下并非如此(而且在我的情况下,这样做还需要在文件之间跳转)。还没有提示可以通过newTextPrinter获得一个合适的值,除了名称上的相似之外。
有没有一种方法可以使代码更加自说明,更好地展示作者的意图?
我更喜欢一种轻量级的方法,不会尝试模拟基于类的继承。同样,代码优于文档,如果不行,我更喜欢以工具理解的格式编写文档,而不是自由格式的文档。显然,我只需要写一个注释,比如"参数textPrinter需要具有print和printBig公共函数",但是如果没有任何东西告诉您关于文档中的错误或者在重构代码时忘记更新文档,那么这将非常容易出错。
我使用的是 Lua 5.0,对这种语言还很新。
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

是的。首先,命名是关键。接下来,注释可以描述合同。此外,格式化、标记、处理和上下文展示注释是许多人编程的方法。最后,格式化注释中的超链接提供了访问完整文档的途径。
有一些格式化注释处理系统:LuaDoc、LDoc、LDT文档语言,等等。不幸的是,没有标准,选择主要是受用户IDE能力的驱动。一些IDE甚至会帮助作者格式化注释。
即使没有处理,标记和格式化-大多数情况下-都可以提高人的可读性。只要源代码容易弹出来,它就可以帮助。