about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSteve Klabnik <steve@steveklabnik.com>2015-06-09 16:37:47 -0400
committerSteve Klabnik <steve@steveklabnik.com>2015-06-09 16:37:47 -0400
commit34e5c24c5d7b693e043b1e35c137959fdcda19a8 (patch)
tree4088c70592efff0d87b52948e1c5d7dc99707e97
parent7b0f2af27f18b6c81fe6a2faab0ba96e0da3bba5 (diff)
downloadrust-34e5c24c5d7b693e043b1e35c137959fdcda19a8.tar.gz
rust-34e5c24c5d7b693e043b1e35c137959fdcda19a8.zip
make note of slicing syntax in TRPL: strings
Fixes #25853
-rw-r--r--src/doc/trpl/strings.md24
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: