Skip to content

Commit

Permalink
auto merge of #14578 : huonw/rust/as_slice-cheatsheet, r=sfackler
Browse files Browse the repository at this point in the history
doc: add an `.as_slice` example to the cheatsheet.

A lot of questions about this on IRC and stackoverflow.
  • Loading branch information
bors committed Jun 1, 2014
2 parents 064dbb9 + aec7f46 commit dfaea70
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions src/doc/complement-cheatsheet.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,24 @@ let x = bytes!(72u8,"ello ",0xF0,0x90,0x80,"World!");
let y = str::from_utf8_lossy(x);
~~~

**`Vec<T>`/`String` to `&[T]`/`&str`**

The `.as_slice` method on each type provides a borrowed slice pointing
to the contents of a `Vec` or `String`. The slice points directly to
the data already stored in the vector or string, and so is a very
cheap operation (no allocations or complicated computations required).

~~~
let vec: Vec<u32> = vec![1, 2, 3];
let slice: &[u32] = vec.as_slice();
let string: String = "foo bar".to_string();
let str_slice: &str = string.as_slice();
~~~

`Vec` also provides the `.as_mut_slice` method for viewing the
contained data as a `&mut [T]`.

# File operations

## How do I read from a file?
Expand Down

0 comments on commit dfaea70

Please sign in to comment.