Строковые литералы

Строковые литералы существуют для того, чтобы задать какое-либо строковое значение в Ü программе. Задаются литералы с использованием "" кавычек.

"simple string"
"в строке может встречаться почти любой юникод"

Для задания некоторых символов в строке используется экранирование.

"\b возврат"
"\t табуляция"
"\n перенос строки"
"\r возврат каретки"
"\f смена страницы"
"\" кавычка"
"\\ обратный slash"
"\0 бинарный ноль"

Также можно задавать код символа, используя его четырёхзначный шестнадцатеричный номер:

"\u0000 ноль"
"\u00DC Ü"
"\u0068 h"

Тип строкового литерала

Строковый литерал имеет тип массива элементов одного из символьных типов - char8, char16 или char32. Размер массива определяется размером литерала. Тип элемента по умолчанию равен char8, конкретнее тип можно указать с использованием суффикса типа - u8 для char8, u16 для char16, u32 для char32. u8 обозначает кодировку UTF-8, u16 - UTF-16, u32 - UTF-32.

"abc абв"u8 // UTF-8 строка, тип элемента массива - "char8"
"abc абв"u16 // UTF-16 строка, тип элемента массива - "char16"
"abc абв"u32 // UTF-32 строка, тип элемента массива - "char32"

О завершающем нуле

В отличии от C, C++ и ряда других языков, в Ü строковые литералы не завершаются неявно нулём. Если завершающий нуль нужен, например для взаимодействия с C кодом, его следует явно указать через \0 в конце литерала.

"/etc/shadow" // Нету завершающего ноля, размер строки - 11
"/etc/shadow\0" // Есть завершающий ноль, размер строки - 12
"" // Нету завершающего ноля, размер строки - 0
"\0" // Есть завершающий ноль, размер строки - 1

Литералы для задания одного символа

Литерал для одного символа задаётся через одинарные кавычки ''. По умолчанию тип такого литерала это char8. Доступны суффиксы c8, c16, c32 а также char8, char16, char32 для явного задания типа.

'J' // char8
'\t' // char8
'Q'c8 // char8
'~'char8 // char8
'Ё'c16 // char16
'й'char16 // char16
'\u00DC'c32 // char32
'ß'char32 // char32