String/str/&str
let noodles = "noodles".to_string();
let oodles = &noodles[1..];
let poodles = "ಠ_ಠ";
strs 是内存中某处动态长度的 UTF-8 字节的不可变序列。由于大小未知,因此只能在指针后面处理它,这意味着str通常显示为&str,即对某些UTF-8数据的引用,通常称为“字符串切片”或简称为“切片”。
Vec
vec的数据储存在堆中,栈里面只储存数据的“胖指针”。
let v1 = vec![1,2,3];
Vec and &Vec
let v: Vec<f64> = vec![0.0, 0.707, 1.0, 0.707];
let a: [f64; 4] = [0.0, -0.707, -1.0, -0.707];
let sv: &[f64] = &v;
let sa: &[f64] = &a;
(下图引用)
Vec<i32> and Vec<Box<i32>>
let vec1 = vec![1, 2, 3, 4];
let vec2 = vec![Box::new(1), Box::new(2), Box::new(3),
Box::new(4)];
vec1:
vec2: