Skip to content

Commit

Permalink
Mention that you can only index with usize
Browse files Browse the repository at this point in the history
Fixes #28693
  • Loading branch information
steveklabnik committed Sep 30, 2015
1 parent 3e6d724 commit 3ef9c1d
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions src/doc/trpl/vectors.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,35 @@ println!("The third element of v is {}", v[2]);

The indices count from `0`, so the third element is `v[2]`.

It’s also important to note that you must index with the `usize` type:

```ignore
let v = vec![1, 2, 3, 4, 5];
let i: usize = 0;
let j: i32 = 0;
// works
v[i];
// doesn’t
v[j];
```

Indexing with a non-`usize` type gives an error that looks like this:

```text
error: the trait `core::ops::Index<i32>` is not implemented for the type
`collections::vec::Vec<_>` [E0277]
v[j];
^~~~
note: the type `collections::vec::Vec<_>` cannot be indexed by `i32`
error: aborting due to previous error
```

There’s a lot of punctuation in that message, but the core of it makes sense:
you cannot index with an `i32`.

## Iterating

Once you have a vector, you can iterate through its elements with `for`. There
Expand Down

0 comments on commit 3ef9c1d

Please sign in to comment.