Строки в сценариях UnrealScript
Автор: Vincent Barabus
Обзор
Операторы
Функции класса Object
Функции класса Actor
Особые замечания
Обзор
Классы Object и Actor включают в себя несколько операторов и функций для выполнения действий со строками в сценариях UnrealScript. В этом документе мы подробно рассмотрим эти операторы и функции.
Операторы
$ (значок "доллар")
string $ ( coerce string A, coerce string B )
Оператор $ принимает две строки, A и B, и объединяет их. Если A или B не являются строками, то будет осуществлена попытка преобразования их значений в строки.
Пример:
`log("Unreal"$"Script"); //prints "UnrealScript"
$=
string $= ( out string A, coerce string B )
Оператор $= принимает две строки, A и B, объединяет их и присваивает результат первой строке. Если B не является строкой, то будет осуществлена попытка преобразования ее значения в строку.
Пример:
MyString = "Unreal"; MyString $= "Script"; // MyString contains "UnrealScript"
@ (at)
string @ ( coerce string A, coerce string B )
Оператор @ принимает две строки, A и B, и объединяет их, помещая между ними пробел. Если A или B не являются строками, то будет осуществлена попытка преобразования их значений в строки.
Пример:
log("Unreal"@"Engine"); //prints "Unreal Engine"
@=
string @= ( out string A, coerce string B )
Оператор @= принимает две строки, A и B, объединяет их, помещая между ними пробел, и присваивает результат первой строке. Если B не является строкой, то будет осуществлена попытка преобразования ее значения в строку.
Пример:
MyString = "Unreal"; MyString @= "Engine"; // MyString contains "Unreal Engine"
< (меньше)
bool < ( string A, string B )
Оператор < принимает две строки, A и B, и возвращает true если первая строка по алфавиту выше второй строки. Обратите внимание, что заглавные буквы всегда по алфавиту выше строчных букв. В случаях, когда необходимо сравнить строки без учета регистра, воспользуйтесь функцией Caps.
Пример:
("Monkey" < "Robot") //this is TRUE.
> (больше)
bool > ( string A, string B )
Оператор > принимает две строки, A и B, и возвращает true если первая строка по алфавиту ниже второй строки. Обратите внимание, что заглавные буквы всегда по алфавиту выше строчных букв. В случаях, когда необходимо сравнить строки без учета регистра, воспользуйтесь функцией Caps.
Пример:
("Batman" > "Aquaman") //this is TRUE.
<= (меньше или равно)
bool <= ( string A, string B )
Оператор <= принимает две строки, A и B, и возвращает true если первая строка по алфавиту выше или соответствует второй строке. Обратите внимание, что заглавные буквы всегда по алфавиту выше строчных букв. В случаях, когда необходимо сравнить строки без учета регистра, воспользуйтесь функцией Caps.
Пример:
("Monkey" <= "Robot") //this is TRUE. ("Monkey" <= "Monkey") //this is TRUE.
>= (больше или равно)
bool >= ( string A, string B )
Оператор >= принимает две строки, A и B, и возвращает true если первая строка по алфавиту ниже или соответствует второй строке. Обратите внимание, что заглавные буквы всегда по алфавиту выше строчных букв. В случаях, когда необходимо сравнить строки без учета регистра, воспользуйтесь функцией Caps.
Пример:
("Monkey" >= "Robot") //this is FALSE. ("Monkey" >= "Monkey") //this is TRUE.
== (равно)
bool == ( string A, string B )
Оператор == принимает две строки, A и B, и возвращает true если строки совпадают. Учтите, что сравнение осуществляется с учетом регистра.
Пример:
("Monkey" == "Robot") //this is FALSE. ("Monkey" == "Monkey") //this is TRUE. ("Monkey" == "monkey") //this is FALSE.
!= (не равно)
bool != ( string A, string B )
Оператор != принимает две строки, A и B, и возвращает true если строки НЕ совпадают. Учтите, что сравнение осуществляется с учетом регистра.
Пример:
("Monkey" != "Robot") //this is TRUE. ("Monkey" != "Monkey") //this is FALSE. ("Monkey" != "monkey") //this is TRUE.
~= (приближенно равно)
bool ~= ( string A, string B )
Оператор ~= принимает две строки, A и B, и возвращает истину, если строки совпадают независимо от регистра.
Пример:
("Monkey" ~= "Robot") //this is FALSE. ("Monkey" ~= "Monkey") //this is TRUE. ("Monkey" ~= "monkey") //this is TRUE.
-= (вычесть и присвоить)
string -= ( out string A, coerce string B );
Оператор -= удаляет все вхождения строки B из строки A и присваивает результат строке A. Поиск осуществляется с учетом регистра. Если B не является строкой, то будет осуществлена попытка преобразования ее значения в строку.
Пример:
MyString = "test: this is a test"; MyString -= "test"; log(MyString); // prints: ": this is a ";
Функции класса Object
Len
int Len ( coerce string S )
Возвращает длину строки.
Пример:
Len("this"); //returns 4;
InStr
int InStr ( coerce string S, coerce string t )
Функция InStr() возвращает позицию первого вхождения подстроки t в строке S. Если подстрока не найдена, то InStr возвращает -1. Обратите внимание, что поиск осуществляется с учетом регистра. В случаях, когда необходимо осуществить поиск без учета регистра, перед вызовом InStr воспользуйтесь функцией Caps для преобразования строк. Если S или t не являются строками, то будет осуществлена попытка преобразования их значений в строки.
Пример:
InStr("These PANTS rock!", "PANTS"); //returns 6 InStr("These PANTS rock!", "pants"); //returns -1 InStr( Caps("These PANTS rock!"), Caps("pants") ); //returns 6
Mid
string Mid ( coerce string S, int i, optional int j )
Функция Mid() возвращает подстроку из строки S начиная с символа по индексу i до символа по индексу j символов. Если j не указан, то копирование осуществляется до конца строки. Индекс i обрезается от 0 до значения длины строки. Индекс j обрезается между и i и значением длины строки. Если S не является строкой, то будет осуществлена попытка преобразования ее значения в строку.
Пример:
Mid("These PANTS rock!", 6, 5); //returns "PANTS" Mid("These PANTS rock!", 6); //returns "PANTS rock!"
Left
string Left ( coerce string S, int i )
Функция Left() возвращает подстроку из строки S от начала до символа по индексу i, символ по индексу i в результат не включается. Если S не является строкой, то будет осуществлена попытка преобразования ее значения в строку.
Пример:
Left("These PANTS rock!", 5); //returns "These"
Right
string Right ( coerce string S, int i )
Функция Right() возвращает подстроку из строки S начиная с символа по индексу i до конца строки. Если S не является строкой, то будет осуществлена попытка преобразования ее значения в строку.
Пример:
Right("These PANTS rock!", 5); //returns "rock!"
Caps
string Caps ( coerce string S )
Функция Caps() возвращает строку S в верхнем регистре. Если S не является строкой, то будет осуществлена попытка преобразования ее значения в строку.
Пример:
Caps("wooo"); //returns "WOOO"
Locs
string Locs ( coerce string S )
Функция Locs() возвращает строку S в нижнем регистре. Если S не является строкой, то будет осуществлена попытка преобразования ее значения в строку.
Пример:
Locs("WoOo"); //returns "wooo"
Chr
string Chr ( int i )
Функция Chr() возвращает строковое представление целого числа. Результатом может быть любой символ в диапазоне 0 - 65535 таблицы Unicode.
Пример:
Chr(65); //returns "A"
Asc
int Asc ( string S )
Функция Asc() возвращает числовое представление первого символа строки S в таблице Unicode.
Пример:
Asc("A"); //returns 65