跳转到内容

模組討論:Articles by Quality and Importance

页面内容不支持其他语言。
维基百科,自由的百科全书

这是本页的一个历史版本,由Artoria2e5留言 | 贡献2016年5月20日 (五) 17:46 字符串拼接风格编辑。这可能和当前版本存在着巨大的差异。


Artoria2e5在话题“字符串拼接风格”中的最新留言:9年前

WikiWorks 实现

将目前的模板进行一些改修(classList 里面多加一条 work:number)应该就可以实现WikiWork坑尺寸计数。我在想要不要修改en:Wikipedia:WikiProject_U.S._Roads/Assessment/ω的公式,在估计工作总量的时候用已评级平均得到的Ω反过去乘上总条目数估计一个会稍大一点的ω'。全都把未评级的当作小作品计分也是可行方案,并且听起来好像更有道理。--Artoria2e5 更改·工具 2016年5月20日 (五) 16:49 (UTC)回复

字符串拼接风格

现在模块混用字串拼接运算符 foo = foo .. 和形如 foo = string.format('%s....') 的字符串格式化来对字串加后缀,一方面有点乱,另一方面 string.format 的性能也不好看。如果可以接受的话,应该考虑全用拼接运算符(对我来说更可读,因为不用看第几个参数是什么了),甚至可以直接做个 table 用 table.concat

如果用 table.concat 的话,大概还是稍微点缀一点字符拼接操作看上去会更可读:

local builder = {}

-- 这样
builder[#builder+1] = '<td blah="' .. blah .. '">' .. blahblah .. '</td>'
-- 这样也能接受(效果降低到避免全 builder 复制)
builder[#builder+1] = string.format('<td blah="%s">%s</td>', blah, blahblah)
-- 这个没有 global 载入,因此速度稍快;同时对用 "foo".format() 的 python 用户更亲切
local footemplate = '<td blah="%s">%s</td>' -- outside of loop
builder[#builder+1] = footemplate:format(blah, blahblah)

-- 总之不能这样
builder[#builder+1] = '<td blah="'
builder[#builder+1] = blah
builder[#builder+1] = '">'
builder[#builder+1] = blahblah
builder[#builder+1] = '</td>'

-- 最后 return 的时候
builder[#builder+1] = '</table>'
return (builder:concat())


--Artoria2e5 更改·工具 2016年5月20日 (五) 17:40 (UTC)回复