-
Notifications
You must be signed in to change notification settings - Fork 52
Quick introduction to AngelScript
Here is a list of syntactic differences between AngelScript and other similar languages, such as C++.
Primitives in AngelScript have direct matches in C++:
Name | Size (bits) |
---|---|
bool |
8 |
double |
64 |
float |
32 |
int8 |
8 |
int16 |
16 |
int |
32 |
int64 |
64 |
uint8 |
8 |
uint16 |
16 |
uint |
32 |
uint64 |
64 |
void |
- |
AngelScript has no C-like pointers, however, its object-handles behavior is similar to Java and C# references:
-
Use
is
(equal) or!is
(not equal) as equality operators. -
The operator
@
marks object handles:MyObject @obj = null; MyObject @obj2 = GetMyObjectHandle(); @obj = @obj2; if (obj is null) { // ... } else if (obj2 !is null) { // ... }
Declare arrays by appending []
brackets to the type name. When declaring a variable with a type modifier, the type modifier affects the type of all variables in the list. Example:
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:
int[] a; // A zero-length array of integers
int[] b(3); // An array of integers with 3 elements
int[] c = {,3,4,}; // An array of integers with 4 elements, where
// the second and third elements are initialized
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;
An array also has the following methods:
void insertAt(uint index, const T& in);
void removeAt(uint index);
void insertLast(const T& in);
void removeLast();
uint length() const;
void resize(uint);
The content above has been adapted from the original AngelScript documentation.
To declare an array of handles, use:
MyObject@[] objects;
To declare a handle to an array, put the @
after the brackets:
MyObject@[]@ arrayOfObjectArrays;
int[]@ handleToArrayOfIntegers;