AngelScript
|
Observe: Arrays are only available in the scripts if the application registers the support for them. The syntax for using arrays may differ for the application you're working with so consult the application's manual for more details.
It is possible to declare array variables with the array identifier followed by the type of the elements within angle brackets.
Example:
array<int> a, b, c;
a
, b
, and c
are now arrays of integers.
When declaring arrays it is possible to define the initial size of the array by passing the length as a parameter to the constructor. The elements can also be individually initialized by specifying an initialization list. Example:
array<int> a; // A zero-length array of integers array<int> b(3); // An array of integers with 3 elements array<int> c(3, 1); // An array of integers with 3 elements, all set to 1 by default array<int> d = {,3,4,}; // An array of integers with 4 elements, where // the second and third elements are initialized
Multidimensional arrays are supported as arrays of arrays, for example:
array<array<int>> a; // An empty array of arrays of integers array<array<int>> b = {{1,2},{3,4}} // A 2 by 2 array with initialized values array<array<int>> c(10, array<int>(10)); // A 10 by 10 array of integers with uninitialized values
Each element in the array is accessed with the indexing operator. The indices are zero based, i.e the range of valid indices are from 0 to length - 1.
a[0] = some_value;
The array object supports a number of operators and has several class methods to facilitate the manipulation of strings.
The array object is a reference type even if the elements are not, so it's possible to use handles to the array object when passing it around to avoid costly copies.
The T represents the type of the array elements.
Script example:
int main() { array<int> arr = {1,2,3}; // 1,2,3 arr.insertLast(0); // 1,2,3,0 arr.insertAt(2,4); // 1,2,4,3,0 arr.removeAt(1); // 1,4,3,0
arr.sortAsc(); // 0,1,3,4
int sum = 0; for( uint n = 0; n < arr.length(); n++ ) sum += arr[n];
return sum; }