Skip to content

Commit

Permalink
Add multi-line string literals to TRPL
Browse files Browse the repository at this point in the history
  • Loading branch information
steveklabnik committed Nov 6, 2015
1 parent a216e84 commit 586eb3d
Showing 1 changed file with 23 additions and 3 deletions.
26 changes: 23 additions & 3 deletions src/doc/trpl/strings.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,29 @@ compiled program, and exists for the entire duration it runs. The `greeting`
binding is a reference to this statically allocated string. String slices
have a fixed size, and cannot be mutated.

A `String`, on the other hand, 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` method.
String literals can span multiple lines. There are two forms. The first will
include the newline and the leading spaces:

```rust
let s = "foo
bar";

assert_eq!("foo\n bar", s);
```

The second, with a `\`, does not trim the spaces:

```rust
let s = "foo\
bar";

assert_eq!("foobar", s);
```

Rust has more than just `&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`
method.

```rust
let mut s = "Hello".to_string(); // mut s: String
Expand Down

0 comments on commit 586eb3d

Please sign in to comment.