Skip to content

Commit

Permalink
Add note on str being an unsized type in strings section of book.
Browse files Browse the repository at this point in the history
  • Loading branch information
xevix committed Mar 25, 2016
1 parent f1578d3 commit 6ce63fb
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/doc/book/strings.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@ let s = "foo\
assert_eq!("foobar", s);
```

Note that you normally cannot access a `str` directly, but only through a `&str`
reference. This is because `str` is an unsized type which requires additional
runtime information to be usable. For more information see the chapter on
[unsized types][ut].

Rust has more than only `&str`s though. A `String` is a heap-allocated string.
This string is growable, and is also guaranteed to be UTF-8. `String`s are
commonly created by converting from a string slice using the `to_string`
Expand Down Expand Up @@ -185,5 +190,6 @@ let hello_world = hello + &world;
This is because `&String` can automatically coerce to a `&str`. This is a
feature called ‘[`Deref` coercions][dc]’.

[ut]: unsized-types.html
[dc]: deref-coercions.html
[connect]: ../std/net/struct.TcpStream.html#method.connect

0 comments on commit 6ce63fb

Please sign in to comment.