Я разрабатываю библиотеку Lua, в которой мне была нужна к верхнему регистру первая буква данной строки. Следовательно я создал следующую функцию:
local capitalize = function(s)
return string.gsub (s,
"(%w)([%w]*)",
function (first, rest)
return string.upper(first) .. rest
end,
1 )
end
Это первоначально было "внутренней" функцией, используемой только на моей библиотеке.
Теперь я понял, что мои пользователи захотят использовать эту функцию в некоторых случаях.
Вопрос 1 я думаю о расширении таблицы строк, но я не уверен в том, как продолжить двигаться. Это достаточно, чтобы сделать это или является там более "lua-ориентированным" путем?
string.capitalize = function(s)
... etc etc (same code as above)
Вопрос 2 интересно, является ли это даже хорошая идея строке monkeypatch. Я должен обеспечить, общественность "используют для своей выгоды" функцию вместо этого?
РЕДАКТИРОВАНИЕ - В случае, если любой находит это в будущем, намного более простое, "использует для своей выгоды" функцию, показан на строковой странице рецептов:
str = str:gsub("^%l", string.upper)