Rust errors / Types and traits
Rust compiler error · checked with rustc 1.99.0
Rust error E0608: cannot index into a value of type `u8`
What it meansAttempted to index a value whose type doesn't implement the std::ops::Index trait.
What rustc prints
error[E0608]: cannot index into a value of type `u8`
--> main.rs:3:4
|
3 | 0u8[2]; // error: cannot index into a value of type `u8`
| ^^^Real output of rustc 1.99.0 compiling the official example below (2021 edition). Your names and line numbers will differ; the first line is the part to match.
The compiler team's explanation
Attempted to index a value whose type doesn't implement the std::ops::Index trait.
Erroneous code example:
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:
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, ...)From rustc --explain E0608 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.
Related errors
- E0308mismatched types
- E0277the trait bound is not satisfied
- E0599no method named X found in the current scope
- E0433failed to resolve
- E0600cannot apply unary operator `!` to type `Question`
- E0604only `u8` can be cast as `char`, not `u32`
- E0609no field on type
- E0610`u32` is a primitive type and therefore doesn't have fields
Up next
Often hit nextE0308: mismatched typesA related error from the same family.Read it next →Did this answer your question?