添加的内容 删除的内容
小 (已保护“Qiuwen:格式手册/Lua”:已通过的方针([编辑=仅允许管理员](无限期)[移动=仅允许管理员](无限期))) |
无编辑摘要 |
||
(未显示2个用户的6个中间版本) | |||
第1行: | 第1行: | ||
{{pp-protected|reason=方针保护|small=yes}} |
|||
{{NoteTA |
{{NoteTA |
||
|G1=IT |
|G1=IT |
||
|G2=MediaWiki}} |
|G2=MediaWiki}} |
||
{{Guideline|=Style|QW:LUA}} |
{{Guideline|=Style|QW:LUA}} |
||
{{not|Help:Lua}} |
|||
本方针列举了用Lua语言编写Scribunto模块应该遵守的一些规定。遵守这些规范有助于Lua代码更加可读、性能更佳并易于维护。 |
本方针列举了用Lua语言编写Scribunto模块应该遵守的一些规定。遵守这些规范有助于Lua代码更加可读、性能更佳并易于维护。 |
||
第44行: | 第47行: | ||
能直接使用<code>frame:callParserFunction</code>或<code>frame:extensionTag</code>的(以及某些情况确实需要调用<code>frame:expandTemplate</code>的),就不要使用<code>frame:preprocess</code>。 |
能直接使用<code>frame:callParserFunction</code>或<code>frame:extensionTag</code>的(以及某些情况确实需要调用<code>frame:expandTemplate</code>的),就不要使用<code>frame:preprocess</code>。 |
||
能使用<code>mw</code>库中的函数解决的,就避免去调用解析器函数。例如,已经有<code>tostring(mw.title.getCurrentTitle)</code>,就不要去使用<code>frame:callParserFunction('FULLPAGENAME')</code>,更不要使用<code>frame:preprocess '{<nowiki />{FULLPAGENAME}}'</code>。 |
能使用<code>mw</code>库中的函数解决的,就避免去调用解析器函数。例如,已经有<code>tostring(mw.title.getCurrentTitle())</code>,就不要去使用<code>frame:callParserFunction('FULLPAGENAME')</code>,更不要使用<code>frame:preprocess '{<nowiki />{FULLPAGENAME}}'</code>。 |
||
=== 严禁频繁连接字符串 === |
=== 严禁频繁连接字符串 === |
||
第57行: | 第60行: | ||
这种行为称为频繁连接字符串。这样每连接一次,都会创建新的字符串对象,然后将旧的字符串作为垃圾回收,影响性能。 |
这种行为称为频繁连接字符串。这样每连接一次,都会创建新的字符串对象,然后将旧的字符串作为垃圾回收,影响性能。 |
||
如果需要多次追加字符串,应当使用表(数组),最后使用<code>table.concat</code>连接。此外,频繁往表(数组)的末尾处追加时,建议使用<code>t[#t + 1] = v</code>而非<code>table.insert(t, v)</code>, |
如果需要多次追加字符串,应当使用表(数组),最后使用<code>table.concat</code>连接。此外,频繁往表(数组)的末尾处追加时,建议使用<code>t[#t + 1] = v</code>而非<code>table.insert(t, v)</code>,这是因为Lua最原始的运算操作往往比调用函数更快。 |
||
<syntaxhighlight lang=lua> |
<syntaxhighlight lang=lua> |
||
第111行: | 第114行: | ||
此外,注释不应当“说废话”。例如{{code|1=x = x + 1 -- 将x增加1|lang=lua}}是没有意义的。 |
此外,注释不应当“说废话”。例如{{code|1=x = x + 1 -- 将x增加1|lang=lua}}是没有意义的。 |
||
{{-}} |
{{-}} |
||
{{方针列表}} |
{{方针列表}} |