2020-11-08 21_26_40-Beginning Rust.pdf - SumatraPDF.pngRust 中 vector 指的是大多数语言中的 List 或者动态数组。
vector VS 数组
不同点
vector是存储在堆上,数组存储在栈上
vector的长度是动态增长的,数组一旦定义,其长度就不能再次更改了
vector是标准库中用泛型实现的,数组是rust语言的原生内建类型
相同点:
存储多个相同类型的值,它们在内存中彼此相邻
OS分配完内存之后默认都会标记这片内存只读不写[值不可变],如果想要修改元素值[内存可读可写],必须使用mut
都只能在{}内部使用,不能再函数外面声明
如果不覆盖的话,作用域均为从声明开始到下一个}结束。一旦离开作用域,它们的值和变量名均会被销毁
在使用for in循环时,如果想要修改vector/array的元素,必须使用*解引用取出元素值才能修改
代码
fn main() {
let mut x = vec!["This", "is", "a", "sentence"];
x.insert(1, "line");
x.insert(2, "contains");
x.remove(3);
x.push("about Rust");
x.pop();
for i in 0..x.len() { print!("{} ", x[i]);}
}
输出
> Executing task: cargo run <
Finished dev [unoptimized + debuginfo] target(s) in 0.00s
Running `target\debug\hello_rust.exe`
This line contains a sentence
Terminal will be reused by tasks, press any key to close it.
网友评论