Data Structures
Y provides several built-in data structures for organizing and storing data. This section covers the fundamental data structures available in the language.
Overview
Y supports the following primary data structures:
- Arrays - Ordered collections of elements of the same type
- Structs - Custom data types that group related fields together
Arrays
Arrays in Y are reference types that store multiple values of the same type in an ordered sequence. They use the &[T]
syntax where T
is the element type.
let numbers = &[1, 2, 3, 4, 5];
let chars = &['a', 'b', 'c'];
let empty: &[i64] = &[];
Arrays support indexing for accessing and modifying elements:
let mut arr = &[10, 20, 30];
let first = arr[0]; // Access: 10
arr[1] = 99; // Modify: [10, 99, 30]
Structs
Structs allow you to create custom data types by grouping related fields:
struct Person {
name: str;
age: i64;
}
let person = Person {
name: "Alice",
age: 30
};
Structs support:
- Field access via dot notation
- Mutable field modification
- Nesting of other structs
- Methods through instance blocks
Choosing the Right Data Structure
- Use arrays when you need an ordered collection of the same type of data
- Use structs when you need to group different types of data that belong together
- Combine both for complex data modeling (arrays of structs, structs with array fields)
Example: Combining Data Structures
struct Student {
name: str;
grades: &[i64];
}
let students = &[
Student {
name: "Alice",
grades: &[95, 87, 92]
},
Student {
name: "Bob",
grades: &[88, 79, 94]
}
];
The following pages provide detailed information about each data structure type.