Виртуальные методы в PROScript
Виртуальные методы — это встроенные функции, которые позволяют работать с данными напрямую: изменять строки, фильтровать массивы, получать значения из объектов и другое.
Методы вызываются через . после значения или переменной. Например:
[% name = ‘Sendsay’ %]
[% name.length() %] # вернёт 7
Виртуальные методы делают код компактнее и понятнее, а также позволяют выполнять операции без дополнительных циклов и проверок.
В этой статье собраны часто используемые методы для разных типов данных.
Виртуальные методы для работы со строками
Эти методы помогают анализировать и изменять текстовые значения.
list
Преобразует строку в массив из одного элемента.
[% 'qwerty'.list().size() %] # вернёт 1
hash
Возвращает хеш-объект, где строка хранится как значение.
[% dump('aaaa'.hash()) %]
Результат:
{ "value" : "aaaa" }
length
Возвращает длину строки.
[% 'aaaa'.length() %] #вернёт 4
size
Всегда возвращает 1 для строковых переменных.
defined
Проверяет, определена ли переменная. Возвращает true или false.
match
Ищет в строке совпадения по регулярному выражению.
[% name = 'Larry Wall' %]
[% matches = name.match('(\w+) (\w+)') %]
[% matches.1 %], [% matches.0 %] # Wall, Larry
Если совпадений нет, метод вернёт false:
[% "We're not worthy!" IF name.match('Larry Wall') %]
[% IF (matches = name.match('(\w+) (\w+)')) %]
pattern matches: [% matches.join(', ') %]
[% ELSE %]
pattern does not match
[% END %]
repeat
Повторяет строку или значение переменной заданное количество раз.
[% name = 'foo' %]
[% name.repeat(3) %] # foofoofoo
replace
Заменяет все подходящие фрагменты на новое значение.
[% name = 'foo, bar & baz' %]
[% name.replace('\W+', '_') %] # foo_bar_baz