Это страница документации Модуль:Ustring.

Этот модуль предоставляет класс для работы со строками в кодировке Юникод так же просто, как с обычными строками. Он используется в других модулях, не в функции #invoke.

Пример использованияПравить

local u = require('Module:Ustring')
local s = u.new('Хорошо живёт на свете %s!')
print(s:format('Винни-Пух')) --результат: Хорошо живёт на свете Винни-Пух!
print(s:format('Винни-Пух'):len()) --результат: 32

Конструктор newПравить

 local s = u.new( str )

Создаёт объект строки, идентичной строке str, но с другим набором методов.

ПоляПравить

stringПравить

Содержит исходную строку типа string.

newПравить

Содержит конструктор, который применяется к строкам в результатах других функций. По умолчанию это конструктор new.

Обзор методовПравить

Наследуются все методы из стандартной библиотеки ustring, при этом к каждой строке в результатах применяется self.new. Метод gmatch переопределён так, что применяет конструктор ко всем результатам итератора; метод gcodepoint не переопределён и итерирует по точкам Unicode, которые возвращаются в цикл как значения типа string (если надо применять конструктор, используйте s:gmatch(".")).

Перегруженные операторыПравить

Конкатенация ..Править

Объекты могут складываться между собой и с обычными строками, результат всегда объект.

СравнениеПравить

Сравнивать можно только объекты между собой. Для сравнения применяется функция u.strcmp, где u — объект, возвращённый require. Если переопределить эту функцию в этом объекте, все объекты ustring будут сравниваться иначе.

ИндексацияПравить

Вызов объекта с числовым ключом возвращает символ с данным номером (типа string):

print( (u.new('Привет!'))[7] ) -- результат: "!"

ОграниченияПравить

Пока что метаметод __len не поддерживается Lua, поэтому вместо оператора #s надо писать s:len().