String
String is the standard heap-allocated growable UTF-8 string buffer:
fn main() {let mut s1 = String::new();s1.push_str("Hello");println!("s1: len = {}, capacity = {}", s1.len(), s1.capacity());let mut s2 = String::with_capacity(s1.len() + 1);s2.push_str(&s1);s2.push('!');println!("s2: len = {}, capacity = {}", s2.len(), s2.capacity());let s3 = String::from("🇨🇭");println!("s3: len = {}, number of chars = {}", s3.len(),s3.chars().count());}
String implements Deref<Target = str>, which means that you can call all
str methods on a String.
Speaker Notes
lenreturns the size of theStringin bytes, not its length in characters.charsreturns an iterator over the actual characters.StringimplementsDeref<Target = str>which transparently gives it access tostr’s methods.