Aggregate Types
Structs & classes are covered above. Literals are also provided, as examples. Ones marked as “feature TBD” might not necessarily make the cut.
// simple arrays
int[] a = [1, 2, 3]; // array of integers (similar to int* in C)
int[][] b = [[1, 2], [3]]; // jagged array (similar to int** in C)
int[,] c = [1, 2; 3, 4]; // (feature & literal syntax TBD) multidimensional array (similar to int[2][2] in C)
int[!] d = [1, 2, 3]; // (feature TBD) immutable array; strings are `char[!]`
// associative arrays (maps)
int[string] a = ["foo": 3, "bar": 4]; // (literal syntax TBD) associative array of `string`=>`int`
// sets
void[string] a; // (feature & literal syntax TBD) set of `string`
Other aggregate types (such as linked lists) are created using generics. Syntax was considered for linked lists (something akin to int[>]
for singly-linked and int[<>]
for doubly-linked), but that would likely just create confusion.