本文主要是介绍[rust-008]关于向量Vec,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
fn main() {//mut,让变量vec的元素可以绑定新值,让变量vec绑定新的向量let mut vec = Vec::new();vec.push(1);vec.push(2);println!("vec = {:#?}", vec);//元素绑定新值vec[0] = 5;println!("vec = {:#?}", vec);//变量vec绑定新向量vec = Vec::new();vec.push(100);vec.push(200);println!("vec = {:#?}", vec);//如果没有mut,都不能变let vec2: Vec<i32> = Vec::new();//报错,不能push值进去,只能是空的向量,空向量是没有意义的。vec2.push(1);//不可变的向量,只能用vec!宏进行创建,可以赋初始值,有使用意义。let vec3: Vec<i32> = vec![10,20,30];println!("vec3 = {:#?}", vec3);//报错,不能重新绑定新向量vec3 = vec![3,4];//报错,元素不能重新赋值vec3[0] = 5;}
1. 用mut修饰的“变量名”,绑定到向量上,那么:向量的每个元素可以重复绑定新值,“变量名”可以重复绑定另一个新向量;
2.不用mut修饰的“变量名”,绑定到向量上,那么:向量的每个元素可以不能重复绑定新值,“变量名”也不可以重复绑定另一个新向量;
3.变量名和向量的元素,要么都不可变,要么都不可变。没有其他可能。也就是说,不能创建一个可变一个不可变。不能创建一个不可变的变量名,绑定到元素可变的向量上,也不能创建一个可变的变量名,绑定到元素不可变的向量上。
4.不可变向量,自然也不能调用pop函数,只能以数组脚标的方式获取具体的值。
这篇关于[rust-008]关于向量Vec的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!