[Rust]字符串

Rust中字符串涉及两种类型:&strString

&str

str是Rust的内置类型,&str是对str的借用。本质上&str是一个&[u8]切片,所以它没有所有权,它无权给这个字符串扩容或者释放内存。

String

String存储在Vec中,它有管理的内存空间的所有权,所以可以增加内容。String实现了Deref的trait,所以在很多情况下,&String类型可以被编译器自动转换为&str类型。

fn accept_str(substr: &mut str) {
    println!("substr: {}", substr);
}

fn main() {
    let mut s = String::from("Hello World");
    accept_str(&mut s);
    println!("{}", s);
}

你可能感兴趣的:([Rust]字符串)