Structs
Declaring structs
A struct is something like a wrapper for different values. It is a value type and allocated on the stack (in .NET, this can differ for other backends). A struct can only contain values.
The syntactic structure of a struct:
<struct_value> ::= "let" <name> ":" <typename> ";"
<struct_declaration> ::= <modifier>? "struct" <name> "{" <struct_value>* "}"An automatic constructor will be generated for the struct to initialize all fields.
A simple example:
public struct Point {
let X : i32;
let Y : i32;
}Working with structs
To create an instance of a struct you have to call the constructor.
let p = Point::new(5, 8);The code above creates a new instance of the struct Point and calls the constructor to initialize the field X with 5 and the field Y with 8.
To index an instance of a struct by one of its fields, use the .-operator.
print(p.X);
print(p.Y);Last updated