Я пытаюсь реализовать свой собственный метод длины для строк в Lua. Я успешно переопределил метод len() для строки, но понятия не имею, как это сделать для оператора #.
orig_len = string.len
function my_len(s)
print(s)
return orig_len(s)
end
string.len = my_len
abc = 'abc'
Если я позвоню:
print(abc:len())
Он выводит:
abc
3
Но
print(#abc)
Выводит только «3», а это значит, что она вызвала исходную функцию длины вместо моей. Есть ли способ заставить # вызывать мою функцию длины?
strlen
илиstrsub
, но я хочу, чтобы обработка utf-8 была прозрачной для программиста, поэтому мне нужны строковые функции Lua для работы с utf-8. 16.04.2014