Rust 数组

定义:数组的大小是固定的,但其中的元素是可以被更改的。
格式1: let array_name: [T;size] //不可修改数组元素的定义方式
格式2: let mut array_name[T;size] //使用let mut 定义可以修改元素值的数组

获取数组元素:
方法一:通过索引值获取

let mut array_name:[u8;3] = [2,3,4];
printlln!("索引为0的元素值为:{}",array_name[0]);

方法二:通过循环表达式获取里面的元素

for item in &array_name{ //do something}
//通过迭代器获取
for item in array_name.iter(){//do something}	//不过修改里面的值
for item in array_name.iter_mut(){//do something}	//可以修改里面的值
for i in 0..array_name.len-1 { //do something}		//通过索引也可以修改使用let mut定义的数组的元素
//通过索引访问的是这个元素的内存地址,而通过迭代器.iter() 或者 .iter_mut()拿到的值是迭代器申请到的内存地址,且每个元素是同一个内存地址,如下:
  	let mut my_array_2 :[String;4] = ["abc".to_string(),"efg".to_string(),"你好".to_string(),"世界".to_string()];
 	println!("my_array_2的地址为:{:p}",&my_array_2);            //my_array_2的地址为:0x21f0b0
    println!("my_array_2[0]的地址为:{:p}",&my_array_2[0]);      //my_array_2[0]的地址为:0x21f0b0
    println!("my_array_2[1]的地址为:{:p}",&my_array_2[1]);      //my_array_2[1]的地址为:0x21f0c8
    println!("my_array_2[2]的地址为:{:p}",&my_array_2[2]);      //my_array_2[2]的地址为:0x21f0e0
	 for item in my_array_2.iter(){
	        println!("item 的地址为:{:p}\t值为:{}",&item,item);
	    }
	//输出
	/*
		item 的地址为:0x21f2d0  值为:abc
		item 的地址为:0x21f2d0  值为:efg
		item 的地址为:0x21f2d0  值为:你好
		item 的地址为:0x21f2d0  值为:世界
	*/

你可能感兴趣的:(Rust,笔记)