Primitive Type str
[-]
[+]
Unicode string manipulation (str type)
Basic Usage
Rust's string type is one of the core primitive types of the language. While
represented by the name str, the name str is not actually a valid type in
Rust. Each string must also be decorated with a pointer. String is used
for an owned string, so there is only one commonly-used str type in Rust:
&str.
&str is the borrowed string type. This type of string can only be created
from other strings, unless it is a static string (see below). As the word
"borrowed" implies, this type of string is owned elsewhere, and this string
cannot be moved out of.
As an example, here's some code that uses a string.
fn main() { let borrowed_string = "This string is borrowed with the 'static lifetime"; }fn main() { let borrowed_string = "This string is borrowed with the 'static lifetime"; }
From the example above, you can guess that Rust's string literals have the
'static lifetime. This is akin to C's concept of a static string.
More precisely, string literals are immutable views with a 'static lifetime
(otherwise known as the lifetime of the entire program), and thus have the
type &'static str.
Representation
Rust's string type, str, is a sequence of Unicode scalar values encoded as a
stream of UTF-8 bytes. All strings are
guaranteed to be validly encoded UTF-8 sequences. Additionally, strings are
not null-terminated and can thus contain null bytes.
The actual representation of strings have direct mappings to slices: &str
is the same as &[u8].