PackedStringArray
Упакованный массив String.
Описание
Массив, специально разработанный для хранения String. Плотно упаковывает данные, поэтому экономит память для больших размеров массива.
Если вы хотите объединить строки в массиве, используйте String.join().
var string_array = PackedStringArray(["hello", "world"])
var string = " ".join(string_array)
print(string) # "hello world"
Различия между упакованными массивами, типизированными массивами и нетипизированными массивами: Упакованные массивы, как правило, быстрее итерируются и изменяются по сравнению с типизированным массивом того же типа (например, PackedStringArray по сравнению с Array[String]). Кроме того, упакованные массивы потребляют меньше памяти. Недостатком упакованных массивов является то, что они менее гибкие, поскольку не предлагают столько удобных методов, как Array.map(). Типизированные массивы, в свою очередь, быстрее перебирать и изменять, чем нетипизированные массивы.
Примечание: Упакованные массивы всегда передаются по ссылке. Чтобы получить копию массива, которую можно изменить независимо от исходного массива, используйте duplicate(). Это не касается встроенных свойств и методов. В этих случаях возвращаемый упакованный массив является копией, и его изменение не повлияет на исходное значение. Чтобы обновить встроенное свойство этого типа, измените возвращаемый массив, а затем снова назначьте его свойству.
Примечание
Существуют заметные различия при использовании данного API с C#. Подробнее см. API различия C# и GDScript.
Обучающие материалы
Конструкторы
PackedStringArray(from: Array) |
Методы
void |
append_array(array: PackedStringArray) |
void |
clear() |
duplicate() const |
|
void |
|
is_empty() const |
|
void |
|
void |
reverse() |
void |
|
size() const |
|
void |
sort() |
to_byte_array() const |
Операторы
operator !=(right: PackedStringArray) |
|
operator +(right: PackedStringArray) |
|
operator ==(right: PackedStringArray) |
|
operator [](index: int) |
Описания конструктора
PackedStringArray PackedStringArray() 🔗
Создает пустой PackedStringArray.
PackedStringArray PackedStringArray(from: PackedStringArray)
Создает PackedStringArray как копию заданного PackedStringArray.
PackedStringArray PackedStringArray(from: Array)
Создает новый PackedStringArray. При желании можно передать универсальный Array, который будет преобразован.
Описания метода
Добавляет элемент в конец массива (псевдоним push_back()).
void append_array(array: PackedStringArray) 🔗
Добавляет PackedStringArray в конец этого массива.
int bsearch(value: String, before: bool = true) const 🔗
Находит индекс существующего значения (или индекс вставки, который поддерживает порядок сортировки, если значение еще не присутствует в массиве) с помощью бинарного поиска. При желании можно передать спецификатор before. Если false, возвращаемый индекс следует после всех существующих записей значения в массиве.
Примечание: Вызов bsearch() для несортированного массива приводит к неожиданному поведению.
void clear() 🔗
Очищает массив. Это эквивалентно использованию resize() с размером 0.
int count(value: String) const 🔗
Возвращает количество раз когда элемент встречается в массиве.
PackedStringArray duplicate() const 🔗
Создает копию массива и возвращает ее.
Удаляет первое вхождение значения из массива и возвращает true. Если значение не существует в массиве, ничего не происходит и возвращается false. Чтобы удалить элемент по индексу, используйте remove_at().
Присваивает заданное значение всем элементам массива. Обычно это можно использовать вместе с resize() для создания массива с заданным размером и инициализированными элементами.
int find(value: String, from: int = 0) const 🔗
Ищет в массиве значение и возвращает его индекс или -1, если не найдено. При желании можно передать начальный индекс поиска.
String get(index: int) const 🔗
Возвращает строку String по заданному index в массиве. Если index выходит за пределы массива или отрицателен, этот метод завершается с ошибкой и возвращает пустую строку.
Этот метод похож (но не идентичен) оператору []. Наиболее примечательно то, что при сбое этого метода выполнение проекта не приостанавливается, если он запускается из редактора.
bool has(value: String) const 🔗
Возвращает true, если массив содержит value.
int insert(at_index: int, value: String) 🔗
Вставляет новый элемент в указанную позицию в массиве. Позиция должна быть допустимой или в конце массива (idx == size()).
Возвращает true если массив пустой.
bool push_back(value: String) 🔗
Добавляет строковый элемент в конец массива.
Удаляет элемент из массива по индексу.
Устанавливает размер массива. Если массив увеличивается, резервирует элементы в конце массива. Если массив уменьшается, усекает массив до нового размера. Вызов resize() один раз и назначение новых значений быстрее, чем добавление новых элементов по одному.
Возвращает @GlobalScope.OK в случае успеха или одну из следующих констант Error, если этот метод не удался: @GlobalScope.ERR_INVALID_PARAMETER, если размер отрицательный, или @GlobalScope.ERR_OUT_OF_MEMORY, если выделение памяти не удается. Используйте size(), чтобы узнать фактический размер массива после изменения размера.
void reverse() 🔗
Инвертирует порядок элементов в массиве.
int rfind(value: String, from: int = -1) const 🔗
Поиск в массиве в обратном порядке. При желании можно передать начальный индекс поиска. Если отрицательный, начальный индекс считается относительно конца массива.
void set(index: int, value: String) 🔗
Изменяет String по указанному индексу.
Возвращает число элементов в массиве.
PackedStringArray slice(begin: int, end: int = 2147483647) const 🔗
Возвращает срез PackedStringArray от begin (включительно) до end (исключительно) как новый PackedStringArray.
Абсолютное значение begin и end будет ограничено размером массива, поэтому значение по умолчанию для end делает его срезом по размеру массива по умолчанию (т. е. arr.slice(1) является сокращением для arr.slice(1, arr.size())).
Если begin или end отрицательны, они будут относительными к концу массива (т. е. arr.slice(0, -2) является сокращением для arr.slice(0, arr.size() - 2)).
void sort() 🔗
Сортирует элементы массива в порядке возрастания.
PackedByteArray to_byte_array() const 🔗
Возвращает PackedByteArray с каждой строкой, закодированной как UTF-8. Строки заканчиваются null.
Описания оператора
bool operator !=(right: PackedStringArray) 🔗
Возвращает true, если содержимое массивов различается.
PackedStringArray operator +(right: PackedStringArray) 🔗
Возвращает новый PackedStringArray с содержимым right, добавленным в конец этого массива. Для лучшей производительности рассмотрите возможность использования append_array() вместо этого.
bool operator ==(right: PackedStringArray) 🔗
Возвращает true, если содержимое обоих массивов одинаково, т.е. они имеют все одинаковые String в соответствующих индексах.
String operator [](index: int) 🔗
Возвращает String по индексу index. Отрицательные индексы можно использовать для доступа к элементам, начиная с конца. Использование индекса за пределами массива приведет к ошибке.