Qiuwen:格式手册/Lua:修订间差异

求闻百科,共笔求闻
添加的内容 删除的内容
(已保护“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>,是因Lua最原始的运算操作往往比调用函数更快。
如果需要多次追加字符串,应当使用表(数组),最后使用<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}}是没有意义的。

{{-}}
{{-}}
{{方针列表}}
{{方针列表}}