Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Error code E0608

Attempted to index a value whose type doesn't implement the std::ops::Index trait.

Erroneous code example:

#![allow(unused)]
fn main() {
0u8[2]; // error: cannot index into a value of type `u8`
}

Only values with types that implement the std::ops::Index trait can be indexed with square brackets. Example:

#![allow(unused)]
fn main() {
let v: Vec<u8> = vec![0, 1, 2, 3];

// The `Vec` type implements the `Index` trait so you can do:
println!("{}", v[2]);
}

Tuples and structs are indexed with dot (.), not with brackets ([]), and tuple element names are their positions:

// this (pseudo code) expression is true for any tuple:
tuple == (tuple.0, tuple.1, ...)