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.
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.