diff options
| author | Steve Klabnik <steve@steveklabnik.com> | 2015-06-09 16:37:47 -0400 |
|---|---|---|
| committer | Steve Klabnik <steve@steveklabnik.com> | 2015-06-09 16:37:47 -0400 |
| commit | 34e5c24c5d7b693e043b1e35c137959fdcda19a8 (patch) | |
| tree | 4088c70592efff0d87b52948e1c5d7dc99707e97 | |
| parent | 7b0f2af27f18b6c81fe6a2faab0ba96e0da3bba5 (diff) | |
| download | rust-34e5c24c5d7b693e043b1e35c137959fdcda19a8.tar.gz rust-34e5c24c5d7b693e043b1e35c137959fdcda19a8.zip | |
make note of slicing syntax in TRPL: strings
Fixes #25853
| -rw-r--r-- | src/doc/trpl/strings.md | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/doc/trpl/strings.md b/src/doc/trpl/strings.md index 55154036286..7d5c43ea14c 100644 --- a/src/doc/trpl/strings.md +++ b/src/doc/trpl/strings.md @@ -117,6 +117,30 @@ let dog = hachiko.chars().nth(1); // kinda like hachiko[1] This emphasizes that we have to go through the whole list of `chars`. +## Slicing + +You can get a slice of a string with slicing syntax: + +```rust +let dog = "hachiko"; +let hachi = &dog[0..5]; +``` + +But note that these are _byte_ offsets, not _character_ offsets. So +this will fail at runtime: + +```rust,should_panic +let dog = "忠犬ハチ公"; +let hachi = &dog[0..2]; +``` + +with this error: + +```text +thread '<main>' panicked at 'index 0 and/or 2 in `忠犬ハチ公` do not lie on +character boundary' +``` + ## Concatenation If you have a `String`, you can concatenate a `&str` to the end of it: |
