我正在开发一个Lua库,其中我需要大写给定字符串的第一个字母。因此,我创建了以下功能:“扩展”“字符串”表 - 如何做?这是一个好主意吗?
local capitalize = function(s)
return string.gsub (s,
"(%w)([%w]*)",
function (first, rest)
return string.upper(first) .. rest
end,
1)
end
这最初是一个“内部”函数,仅用于我的库。
现在我已经意识到我的用户会在某些情况下使用此功能。
问题1 我想扩展字符串表,但我不知道如何着手。做到这一点就够了吗?还是有更多的“以卢阿为导向”的方式?
string.capitalize = function(s)
... etc etc (same code as above)
问题2 我不知道是否是连猴补丁串个好主意。我应该提供一个公共的“大写”功能吗?
编辑 - 如果任何人认为这在未来,一个简单得多的“利用”功能显示在string recipes页:
str = str:gsub("^%l", string.upper)
感谢您分享。我终于会按照你的“最后说明”而不是用我自己的功能污染字符串 - 我想我找到了一个更好的方法。但你的笔记在将来可能会派上用场。 – kikito 2010-01-10 12:10:25