Операторы
https://www.angelcode.com/angelscript/sdk/docs/manual/doc_script_stdlib_string.html#doc_datatypes_strings_addon_ops
Определяют разрешённые операции над строками.
Присваивание
Строки, как и примитивы, присваиваются по значению с помощью оператора присваивания.
=
Присваивание
string A = "Будет создан массив байт который будет эквивалентен представлению этого текста";
string B = A; //Будет создана копия массива байт переменной A и присвоен переменной B
Конкатенация
В первом приближении конкатенация это просто склеивание нескольких строк в одну с помощью операторов сложения.
+
Сложение
+=
Присваивающее сложение
string A = "Эти" "литералы" "будут" "объединены" "в" "одну" "строку" "при" "компиляции";
string B = A + "Конкатенация с помощью оператора сложения"
string C = B + 1 + 2.f + true; // Конкатенация примитивов допустима
void [[[main|main.html]]](){
С += "Конкатенация с помощью оператора присваивающего сложения";
}
Равенство
Применяет оператор равенства к каждому байту строки.
==
Равно
!=
Не равно
bool A = "A" == "B"; // false
bool B = "A" != "B"; // true
Сравнение
Применяет оператор сравнения к каждому байту строки.
<
Меньше
>
Больше
<=
Меньше или равно
>=
Больше или равно
Если байты на одной и той же позиции в обеих строках равны, сравнение продолжается сравнением следующих байт. Если в какой-то момент байты не равны, строка с большим значением байта считается большей.
Если строки разной длины одинаковы до момента различия длин, то большей считается более длинная строка.
bool A = "Z" > "A"; // true: байтовое представление Z = 90, A = 65
bool B = "Z" > "AAAAA"; // true: несмотря на большую длину, сравнение будет окончено на первом же байте Z > A
bool C = "Z" > "ZZ"; // false: байты на первой позиции одинаковы, на второй же позиции у первой строки нет байт
bool D = "ZZ" >= "ZZ"; // true: строки побайтово равны
bool E = "🍒" > "💋"; // false: [F0, 9F, 8D, 92] > [F0, 9F, 92, 8B] => F0==F0; 9F==9F; 8D < 92
Доступ по индексу
Возвращает байт на указной позиции с помощью оператора доступа по индексу.
[]
Доступ по индексу
int8 A = "🍒"[3]; // 146
Last modified: 16 October 2024