自我记录参数在Lua
我正在寻找一种方法来澄清我的Lua函数的合约。特别是,参数应该具有哪些属性。自我记录参数在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,而且对于该语言来说相当新颖。
回答:
是的。首先,命名是关键。接下来,评论可以描述合同。此外,格式化,标记,处理和上下文呈现的评论是有多少人编程。最后,格式化注释中的超链接提供了访问完整文档的途径。
有几种格式化注释处理系统:LuaDoc,LDoc,LDT文档语言...。不幸的是,没有标准,选择将主要由用户的IDE功能驱动。一些IDE甚至会协助作者对格式化评论。
即使没有处理,标签和格式 - 大部分 - 提高了人的可读性。所以只要源代码很容易弹出,它确实有帮助。
以上是 自我记录参数在Lua 的全部内容, 来源链接: utcz.com/qa/260848.html