Реализация StringTemplate на RSL. Альтернатива конкатенации строк.
Скачать (zip-файл; Размер - 1442)Обсудить в форуме
Описание
Реализация StringTemplate на RSL. Альтернатива конкатенации строк.
Функции:
Macro StrTmpl(str : String) : String - Возвращает сгенерированную строку из шаблона 'str'.
Macro PrintlnT(str) - Передает в выходной поток сгенерированную строку из шаблона 'str' с переносом строки.
Macro PrintT(str) - Передает в выходной поток сгенерированную строку из шаблона 'str' без переноса строки.
Как использовать:
Для передачи выражения expr необходимо заключить его в '$[expr]';
expr может быть
- глобальной переменной,
- ссылкой на объект с реализованным методом toString,
- любым выражением на языке RSL, доступным в глобальном контексте, за исключением символов [](т.е к эл-ам массива следует обращаться через () );
Также возможно применять спецификаторы форматирования внутри скобок.
Для использования функции внутри макрофункции, есть возможность использовать принудительно-глобальные переменные (пгп)
при этом, если необходимо передать в шаблон одиночную пгп, можно не ограничивать её $[]. Однако при необходимости использовать функцию необходимо заключить его в $[] при этом пгп обозначать внутри {}.
Пример использования:
var acc = "40817840000000001234";
var client = "Иванов Иван Иванович";
var sum = $100523.23;
var rate = 65.59;
var tmpl = StrTmpl("Остаток на счёте в р.э. $[acc] ($[client]) = $[sum*rate:a:0:2]");
Println(tmpl);
// Остаток на счёте в р.э. 40817840000000001234 (Иванов Иван Иванович) = 659'331'865.57
Пример с использованием пгп:
Macro pgp()
var {i} = 0;
for({i}, 1, 5)
PrintlnT("Строка {i} к Вашим услугам.");
end;
End;
pgp();
// Выведет 5 нумерованных строк.
Функции:
Macro StrTmpl(str : String) : String - Возвращает сгенерированную строку из шаблона 'str'.
Macro PrintlnT(str) - Передает в выходной поток сгенерированную строку из шаблона 'str' с переносом строки.
Macro PrintT(str) - Передает в выходной поток сгенерированную строку из шаблона 'str' без переноса строки.
Как использовать:
Для передачи выражения expr необходимо заключить его в '$[expr]';
expr может быть
- глобальной переменной,
- ссылкой на объект с реализованным методом toString,
- любым выражением на языке RSL, доступным в глобальном контексте, за исключением символов [](т.е к эл-ам массива следует обращаться через () );
Также возможно применять спецификаторы форматирования внутри скобок.
Для использования функции внутри макрофункции, есть возможность использовать принудительно-глобальные переменные (пгп)
при этом, если необходимо передать в шаблон одиночную пгп, можно не ограничивать её $[]. Однако при необходимости использовать функцию необходимо заключить его в $[] при этом пгп обозначать внутри {}.
Пример использования:
var acc = "40817840000000001234";
var client = "Иванов Иван Иванович";
var sum = $100523.23;
var rate = 65.59;
var tmpl = StrTmpl("Остаток на счёте в р.э. $[acc] ($[client]) = $[sum*rate:a:0:2]");
Println(tmpl);
// Остаток на счёте в р.э. 40817840000000001234 (Иванов Иван Иванович) = 659'331'865.57
Пример с использованием пгп:
Macro pgp()
var {i} = 0;
for({i}, 1, 5)
PrintlnT("Строка {i} к Вашим услугам.");
end;
End;
pgp();
// Выведет 5 нумерованных строк.