Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
PackedInt32Array
Упакований масив 32-бітних цілих.
Опис
Масив, спеціально призначений для зберігання 32-бітних цілих чисел. Дані в ньому упаковуються щільно, що дозволяє економити пам'ять при роботі з великими масивами.
Примітка: Цей тип зберігає 32-бітні цілі числа зі знаком, тобто може приймати значення в діапазоні [-2^31, 2^31 - 1] ``, тобто ``[-2147483648, 2147483647]. При перевищенні цих меж значення буде переноситися. Для порівняння, int використовує 64-бітні цілі числа зі знаком, які можуть зберігати набагато більші значення. Якщо вам потрібно щільно упакувати 64-бітні цілі числа, дивіться PackedInt64Array.
Примітка: Упаковані масиви завжди передаються за посиланням. Щоб отримати копію масиву, яку можна змінювати незалежно від оригінального масиву, використовуйте duplicate(). Це не стосується вбудованих властивостей та методів. У цих випадках повернений упакований масив є копією, і його зміна не вплине на оригінальне значення. Щоб оновити вбудовану властивість цього типу, змініть повернутий масив, а потім знову присвойте його властивості.
Примітка: У логічному контексті упакований масив обчислюється як false, якщо він порожній. В іншому випадку упакований масив завжди обчислюється як true.
Примітка
Існують значні відмінності при використанні цього API із С#. Більше інформації: ref:doc_c_sharp_differences.
Конструктори
PackedInt32Array(from: PackedInt32Array) |
|
PackedInt32Array(from: Array) |
Методи
void |
append_array(array: PackedInt32Array) |
void |
clear() |
duplicate() const |
|
void |
|
is_empty() const |
|
void |
|
void |
reverse() |
void |
|
size() const |
|
void |
sort() |
to_byte_array() const |
Оператори
operator !=(right: PackedInt32Array) |
|
operator +(right: PackedInt32Array) |
|
operator ==(right: PackedInt32Array) |
|
operator [](index: int) |
Описи конструкторів
PackedInt32Array PackedInt32Array() 🔗
Будуємо порожній PackedInt32Array.
PackedInt32Array PackedInt32Array(from: PackedInt32Array)
Constructs a PackedInt32Array як копія даної PackedInt32Array.
PackedInt32Array PackedInt32Array(from: Array)
Constructs a new PackedInt32Array. Додатково ви можете пройти в загальній Array, яка буде перетворена.
Описи методів
Додає елемент у кінець масиву (псевдонім push_back()).
void append_array(array: PackedInt32Array) 🔗
Додаток PackedInt32Array в кінці цього масиву.
int bsearch(value: int, before: bool = true) const 🔗
Знаходить індекс існуючого значення (або індекс вставки, який підтримує порядок сортування, якщо значення ще не присутнє в масиві) за допомогою бінарного пошуку. За бажанням можна передати специфікатор before. Якщо false, індекс, що повертається, йде після всіх існуючих записів значення в масиві.
Примітка: Виклик bsearch() на невідсортованому масиві призводить до неочікуваної поведінки.
void clear() 🔗
Очищає масив. Еквівалентно використанню resize() з розміром 0.
Повертає кількість повторень елемента в масиві.
PackedInt32Array duplicate() const 🔗
Створює копію масиву і повертає його.
Видаляє перше входження значення з масиву та повертає true. Якщо значення не існує в масиві, нічого не відбувається, і повертається false. Щоб видалити елемент за індексом, використовуйте метод remove_at().
Присвоює задане значення всім елементам масиву. Зазвичай це можна використовувати разом з resize() для створення масиву заданого розміру та ініціалізованих елементів.
int find(value: int, from: int = 0) const 🔗
Шукає в масиві значення і повертає його індекс або -1, якщо таке не знайдено. За бажанням можна передати початковий індекс пошуку.
Повертає 32-бітове ціле число за заданим index у масиві. Якщо index виходить за межі або є від'ємним, цей метод завершується невдачею та повертає 0.
Цей метод схожий (але не ідентичний) на оператор []. Найголовніше, що коли цей метод завершується невдачею, він не призупиняє виконання проекту, якщо його запускати з редактора.
Повертає true, якщо масив містить value.
int insert(at_index: int, value: int) 🔗
Вставте нове ціле місце в даній позиції в масиві. Посада повинна бути дійсна, або в кінці масиву (idx == розмір()).
Повертає true, якщо масив порожній.
Додає значення до масиву.
Видаляє елемент з масиву за індексом.
Встановлює розмір масиву. Якщо масив збільшується, резервує елементи в кінці масиву. Якщо масив скорочується, обрізає масив до нового розміру. Виклик методу resize() один раз і призначення нових значень відбувається швидше, ніж додавання нових елементів по одному.
Повертає @GlobalScope.OK у разі успіху або одну з наступних констант Error, якщо цей метод не працює: @GlobalScope.ERR_INVALID_PARAMETER, якщо розмір від'ємний, або @GlobalScope.ERR_OUT_OF_MEMORY, якщо розподіл пам'яті не вдається. Використовуйте метод size(), щоб знайти фактичний розмір масиву після зміни розміру.
void reverse() 🔗
Змінює порядок елементів у масиві на протилежний.
int rfind(value: int, from: int = -1) const 🔗
Здійснює пошук у масиві у зворотному порядку. За бажанням можна передати початковий індекс пошуку. Якщо він від'ємний, то початковий індекс береться відносно кінця масиву.
void set(index: int, value: int) 🔗
Змінює ціле в даній позиції.
Повертає кількість елементів у масиві.
PackedInt32Array slice(begin: int, end: int = 2147483647) const 🔗
Повертає розріз PackedInt32Array, з start (включно) до end (виключно), як новий PackedInt32Array.
Абсолютне значення start і end буде зафіксовано до розміру масиву, тому значення за замовчуванням для end робить кінець розрізу кінцем масиву за замовчуванням (тобто arr.slice(1) є скороченим записом для arr.slice(1, arr.size())).
Якщо ж start або end є негативними, вони будуть відносно кінця масиву (тобто arr.slice(0, -2) є скороченим записом для arr.slice(0, arr.size() - 2)).
void sort() 🔗
Сорти елементів масиву в порядку закріплення.
PackedByteArray to_byte_array() const 🔗
Повертає копію даних, перетворених у PackedByteArray, де кожен елемент закодовано як 4 байти.
Розмір нового масиву буде int32_array.size() * 4.
Описи операторів
bool operator !=(right: PackedInt32Array) 🔗
Повертає true, якщо вміст масивів відрізняється.
PackedInt32Array operator +(right: PackedInt32Array) 🔗
Повертає новий PackedInt32Array з вмістом right додано в кінці цього масиву. Для кращої роботи розглянемо використання append_array() замість.
bool operator ==(right: PackedInt32Array) 🔗
Повертаємо true, якщо вміст обох масивів однаковий, тобто вони мають всі рівні показники за відповідними показниками.
Повертаємо int в індексі index. Негативні індекси можуть використовуватися для доступу до елементів з кінця. Використання індексу з меж масиву призведе до помилки.
Зверніть увагу, що тип int 64-біт, на відміну від значень, що зберігаються в масиві.