Overview
Linea supports two types of collections: Arrays (fixed-size) and Vectors (dynamic). Both are fundamental to writing Linea programs.
Arrays (Fixed-Size)
Declaration
var arr @ [int] = [1, 2, 3, 4, 5]
var names @ [str] = ["Alice", "Bob", "Charlie"]
Indexing
Access elements using zero-based indices:
var first @ int = arr[0] // 1
var second @ int = arr[1] // 2
var last @ int = arr[4] // 5
Modification
var arr @ [int] = [1, 2, 3]
arr[0] = 10 // Update first element
arr[2] = 30 // Update last element
Length
var arr @ [int] = [10, 20, 30]
var size @ int = len(arr) // 3
Vectors (Dynamic Arrays)
Declaration
var vec @ Vector<int> = [1, 2, 3]
Push Operations
var vec @ Vector<int> = [1, 2]
vec.push(3) // Add element
vec.push(4)
Pop Operations
var vec @ Vector<int> = [1, 2, 3]
var last @ int = vec.pop() // Remove and return last element
Multi-Dimensional Arrays
2D Arrays (Matrices)
var matrix @ [[int]] = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
var element @ int = matrix[1][2] // 6
3D Arrays (Tensors)
var tensor @ [[[int]]] = [
[[1, 2], [3, 4]],
[[5, 6], [7, 8]]
]
var val @ int = tensor[1][0][1] // 6
Iteration
For Loop with Range
var arr @ [int] = [10, 20, 30]
for i from 0~2 {
display arr[i]
}
Matrix Iteration
var matrix @ [[int]] = [[1, 2], [3, 4]]
for i from 0~1 {
for j from 0~1 {
display matrix[i][j]
}
}
Common Operations
Sum of Array Elements
var arr @ [int] = [1, 2, 3, 4, 5]
var sum @ int = 0
for i from 0~4 {
sum = sum + arr[i]
}
display sum // 15
Find Maximum Element
var arr @ [int] = [3, 7, 2, 9, 1]
var max @ int = arr[0]
for i from 1~4 {
if arr[i] > max {
max = arr[i]
}
}
display max // 9
Best Practices
- Use arrays for fixed data: Better performance and memory usage
- Use vectors for dynamic data: When size can change
- Check bounds: Always verify array indices are valid
- Use len() function: Always call len() instead of hardcoding sizes
- Prefer iteration over indexing: When possible, use for loops