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.

PackedFloat32Array

Упакований масив 32-бітових плаваючі значення точки.

Опис

Масив, спеціально призначений для зберігання 32-бітних чисел з плаваючою комою (float). Дані в ньому упаковуються щільно, що дозволяє заощадити пам'ять при роботі з великими масивами.

Якщо вам потрібно щільно упакувати 64-бітні числа з плаваючою комою, див. PackedFloat64Array.

Примітка: Упаковані масиви завжди передаються за посиланням. Щоб отримати копію масиву, яку можна змінювати незалежно від оригінального масиву, використовуйте duplicate(). Це не стосується вбудованих властивостей та методів. У цих випадках повернений упакований масив є копією, і його зміна не вплине на оригінальне значення. Щоб оновити вбудовану властивість цього типу, змініть повернутий масив, а потім знову присвойте його властивості.

Примітка: У логічному контексті упакований масив обчислюється як false, якщо він порожній. В іншому випадку упакований масив завжди обчислюється як true.

Примітка

Існують значні відмінності при використанні цього API із С#. Більше інформації: ref:doc_c_sharp_differences.

Конструктори

PackedFloat32Array

PackedFloat32Array()

PackedFloat32Array

PackedFloat32Array(from: PackedFloat32Array)

PackedFloat32Array

PackedFloat32Array(from: Array)

Методи

bool

append(value: float)

void

append_array(array: PackedFloat32Array)

int

bsearch(value: float, before: bool = true) const

void

clear()

int

count(value: float) const

PackedFloat32Array

duplicate() const

bool

erase(value: float)

void

fill(value: float)

int

find(value: float, from: int = 0) const

float

get(index: int) const

bool

has(value: float) const

int

insert(at_index: int, value: float)

bool

is_empty() const

bool

push_back(value: float)

void

remove_at(index: int)

int

resize(new_size: int)

void

reverse()

int

rfind(value: float, from: int = -1) const

void

set(index: int, value: float)

int

size() const

PackedFloat32Array

slice(begin: int, end: int = 2147483647) const

void

sort()

PackedByteArray

to_byte_array() const

Оператори

bool

operator !=(right: PackedFloat32Array)

PackedFloat32Array

operator +(right: PackedFloat32Array)

bool

operator ==(right: PackedFloat32Array)

float

operator [](index: int)


Описи конструкторів

PackedFloat32Array PackedFloat32Array() 🔗

Будуємо порожній PackedFloat32Array.


PackedFloat32Array PackedFloat32Array(from: PackedFloat32Array)

Constructs a PackedFloat32Array як копія даної PackedFloat32Array.


PackedFloat32Array PackedFloat32Array(from: Array)

Constructs a new PackedFloat32Array. Додатково ви можете пройти в загальній Array, яка буде перетворена.


Описи методів

bool append(value: float) 🔗

Додає елемент у кінець масиву (псевдонім push_back()).


void append_array(array: PackedFloat32Array) 🔗

Додаток PackedFloat32Array в кінці цього масиву.


int bsearch(value: float, before: bool = true) const 🔗

Знаходить індекс існуючого значення (або індекс вставки, який підтримує порядок сортування, якщо значення ще не присутнє в масиві) за допомогою бінарного пошуку. За бажанням можна передати специфікатор before. Якщо false, індекс, що повертається, йде після всіх існуючих записів значення в масиві.

Примітка: Виклик bsearch() на невідсортованому масиві призводить до неочікуваної поведінки.

Примітка: Поведінка @GDScript.NAN відрізняється від інших чисел. Через це результати цього методу можуть бути неточними за наявності NaN-ів.


void clear() 🔗

Очищає масив. Еквівалентно використанню resize() з розміром 0.


int count(value: float) const 🔗

Повертає кількість разів елемент знаходиться в масиві.

Примітка: Поведінка @GDScript.NAN відрізняється від інших чисел. Через це результати цього методу можуть бути неточними за наявності NaN-ів.


PackedFloat32Array duplicate() const 🔗

Створює копію масиву і повертає його.


bool erase(value: float) 🔗

Видаляє перше входження значення з масиву та повертає true. Якщо значення не існує в масиві, нічого не відбувається, і повертається false. Щоб видалити елемент за індексом, використовуйте метод remove_at().

Примітка: @GDScript.NAN поводиться не так, як інші числа. Тому результати цього методу можуть бути неточними, якщо включені NaN.


void fill(value: float) 🔗

Присвоює задане значення всім елементам масиву. Зазвичай це можна використовувати разом з resize() для створення масиву заданого розміру та ініціалізованих елементів.


int find(value: float, from: int = 0) const 🔗

Шукає значення в масиві та повертає індекс або -1, якщо не знайдено. Додатково може бути переданий початковий індекс пошуку.

Примітка: Поведінка @GDScript.NAN відрізняється від інших чисел. Через це результати цього методу можуть бути неточними за наявності NaN-ів.


float get(index: int) const 🔗

Повертає 32-бітне число з плаваючою комою за заданим значенням index у масиві. Якщо значення index виходить за межі або є від'ємним, цей метод завершується невдачею та повертає значення 0.0.

Цей метод схожий (але не ідентичний) на оператор []. Найголовніше, що коли цей метод завершується невдачею, він не призупиняє виконання проекту, якщо його запускати з редактора.


bool has(value: float) const 🔗

Повертає true, якщо масив містить value.

Примітка: Поведінка @GDScript.NAN відрізняється від інших чисел. Через це результати цього методу можуть бути неточними за наявності NaN-ів.


int insert(at_index: int, value: float) 🔗

Вставте новий елемент на даній позиції в масиві. Посада повинна бути дійсна, або в кінці масиву (idx == розмір()).


bool is_empty() const 🔗

Повертає true, якщо масив порожній.


bool push_back(value: float) 🔗

Додаток елемента в кінці масиву.


void remove_at(index: int) 🔗

Видаляє елемент з масиву за індексом.


int resize(new_size: int) 🔗

Встановлює розмір масиву. Якщо масив збільшується, резервує елементи в кінці масиву. Якщо масив скорочується, обрізає масив до нового розміру. Виклик методу resize() один раз і призначення нових значень відбувається швидше, ніж додавання нових елементів по одному.

Повертає @GlobalScope.OK у разі успіху або одну з наступних констант Error, якщо цей метод не працює: @GlobalScope.ERR_INVALID_PARAMETER, якщо розмір від'ємний, або @GlobalScope.ERR_OUT_OF_MEMORY, якщо розподіл пам'яті не вдається. Використовуйте метод size(), щоб знайти фактичний розмір масиву після зміни розміру.


void reverse() 🔗

Змінює порядок елементів у масиві на протилежний.


int rfind(value: float, from: int = -1) const 🔗

Шукає значення в масиві у зворотному порядку. Додатково може бути переданий початковий індекс пошуку. Якщо негативний, початковий індекс вважається відносним до кінця масиву.

Примітка: Поведінка @GDScript.NAN відрізняється від інших чисел. Через це результати цього методу можуть бути неточними за наявності NaN-ів.


void set(index: int, value: float) 🔗

Змінює число з рухомою комою в даній позиції.


int size() const 🔗

Повертає кількість елементів у масиві.


PackedFloat32Array slice(begin: int, end: int = 2147483647) const 🔗

Повертає розріз PackedFloat32Array, з start (включно) до end (виключно), як новий PackedFloat32Array.

Абсолютне значення 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() 🔗

Сортує елементи масиву в порядку зростання.

Примітка: Поведінка @GDScript.NAN відрізняється від інших чисел. Через це результати цього методу можуть бути неточними за наявності NaN-ів.


PackedByteArray to_byte_array() const 🔗

Повертає копію даних, перетворених у PackedByteArray, де кожен елемент закодовано як 4 байти.

Розмір нового масиву буде float32_array.size() * 4.


Описи операторів

bool operator !=(right: PackedFloat32Array) 🔗

Повертає true, якщо вміст масивів відрізняється.


PackedFloat32Array operator +(right: PackedFloat32Array) 🔗

Повертає новий PackedFloat32Array з вмістом right додано в кінці цього масиву. Для кращої роботи розглянемо використання append_array() замість.


bool operator ==(right: PackedFloat32Array) 🔗

Повертає true, якщо вміст обох масивів однаковий, тобто вони мають всі рівні плавки за відповідними показниками.


float operator [](index: int) 🔗

Повернення float в індекс index. Негативні індекси можуть використовуватися для доступу до елементів з кінця. Використання індексу з меж масиву призведе до помилки.

Зверніть увагу, що float тип 64-bit, на відміну від значень, що зберігаються в масиві.