Вышла версия PascalABC.NET 3.3.5, сборка 1644 от 23.03.2018.
В выводе посредством Write/Writeln появилась возможность использовать своеобразный аналог интерполированных строк C#. Своеобразие их в том, что используется смесь форматов традиционного Pascal и среды .NET. Методом проб и ошибок удалось выявить следующее:
Оператор вывода записывается в виде
Write($'форматная строка');
Форматная строка - это произвольный текст, в который в нужных местах внедрены элементы вида {элемент вывода}, а каждый элемент вывода - это имя переменной (не массива, но записи и кортежи понимаются верно), за которым могут следовать паскалевская спецификация ширины поля для вывода и количества цифр в дробной части, как обычно, предваряемые двоеточиями:
begin
var (a,b,c):=(3.156,8,False);
Writeln($'Вещественное a: {a:5:2}, целое b={b} и булево {c:10}')
end.
Без спецификации ширины форматные строки можно также писать в расширении .Ptint/.Println:
begin
var (a,b,c):=(3.156,8,False);
($'Вещественное a: {a}, целое b={b} и булево {c}').Println
end.
форматные строки могут оказаться удобно читаемой альтернативой уже имеющимся средствам вывода. Вариантов с программным созданием форматирующих строк я не нашел. Но зато вместо имени переменной в фигурные скобки можно ставить произвольное вычисляемое выражение. А вот дважды повторять один и тот же элемент вывода почему-то запрещено.
begin
var a:=1;
Writeln($'Первый раз {a} и второй {a}')
end.
Будет сообщение “Program1.pas(3) : Встречена неправильная форматная строка”