Module 2Slices & ViewsLesson 8 of 922 min
Array/Slice Windows for Prices
&[T] views, slicing ranges, and SMA without copying the whole series.
Slice type &[T]
rust
let prices = [100.0, 101.0, 99.5, 102.0, 103.0];
let window: &[f64] = &prices[1..4];Iteration without taking ownership
rust
fn main() {
let prices = [100.0, 101.0, 99.5, 102.0, 103.0];
for p in prices.iter() {
println!("{p}");
}
let sum: f64 = prices.iter().sum();
println!("sum={sum}");
}Output
100
101
99.5
102
103
sum=505.5Exercise
SMA over full series and last 3 points.
Challenge
Write fn min_max(xs: &[f64]) -> Option<(f64, f64)>.
Tips
- Slices prevent needless Vec clones
- len() is usize — cast to f64 for division
- Empty slice edge cases matter in rolling stats
Try it live
Array/Slice Windows for PricesRust 2021
Loading editor…
Output
Press Run to compile and execute.