The compiler gives you a note about this:
= note: slice indices are of type `usize`
You must index a slice with a usize
. usize
is an unsigned integral type that has the same size as a pointer, and can represent a memory offset or the size of an object in memory. On 32-bit systems, it's a 32-bit integer, and on 64-bit systems, it's a 64-bit integer. Declare your index variables as usize
unless you really have a lot of them, in which case you can use x as usize
to cast them to an usize
.
When you leave out the type annotation, Rust deduces that your integer literals must be of type usize
because slices implement Index<usize>
and not Index<i32>
or Index<any other integral type>
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…