Skip to the content.

Символьные строки

NewLang поддерживает два типа строк, символьные (широкие символы) - :StrWide и байтовые - :StrChar. Различия между ними заключается в типе единичного элемента. У символьных строк единичным элементом является широкий символ wchar_t, а у байтовой строки единичным элементом является один байт (точнее :Int8, т.е. 8-ми битное целое число со знаком). Символьные строки - литералы в исходном тексте записывается в «двойных кавычках», а байтовые строки в ‘одинарных кавычках’.

Количество элементов символьной строки возвращается в широких символах, а размер байтовой строки в байтах, поэтому и обращение к элементу строки по индексу происходит соответственно либо к символу, либо к байту соответственно.

Форматирование строк

Так как к любой переменной можно обратиться так же, как к функции (указав после её имени круглые скобки) и результатом этой операции будет создание копии/клона объекта, то у некоторых типов данных (словари, классы и символьные строки) такую операцию можно использовать в качестве шаблона при создании копии объекта с модифицированными свойствами. Если в скобках указать новые и/или изменяемые значения как аргументы при вызовах функций, то при создании клона строки, результирующая копия будет содержать уже измененные данные.

Например:

$template := "${name} $1"; # Обычная строка широких символов
$result := $template("шаблон", name = "Строка"); # result = "Строка шаблон"