返回 Rust
Rust 2026-05-19

1.特性

1.特性 变量改变值的时候必须保持类型一致,而shadowing机制可以改变类型(一个彻底的新变量覆盖之前的同名变量)

注释示例: //单行注释 /* 多行注释1 多行注释2 */


2.数据类型 rust共有四种标量类型

  1. 整数
  2. 浮点数
  3. 布尔
  4. 字符

最后一种arch整数表示符合当前计算机架构的整数类型,一般是64位/32位整数,也分为有符号和无符号,可以理解为“万金油”整数

rust在调试模式(cargo build)下会尽职尽责检查数据溢出防止发生panic; 在发布模式下则不会检查数据溢出,当出现溢出时会进行“值的环绕”

运算操作支持加减乘除余

布尔类型符号为bool,取值有true/false,占用1个字节

因为char类型支持的字符比较多,所以占用内存是4字节

rust内置了两种复合数据类型,分别是元组和数组

元组Tuple:

  1. 支持存放不同类型
  2. 长度一旦确定不可更改

示例代码: //定义一个元组并且显示声明元素类型 let tup:(i32,f64,char)=(12,50.4,'a');

//使用模式匹配解构元组获取元素 let (a,b,c)=tup;

//通过打点索引访问元素 println!("{},{},{}",tup.0,tup.1,tup.2);

数组Array:

  1. 只能存放相同类型
  2. 长度一旦确定不能更改

示例代码: //定义一个数组并且显示声明类型和长度 let arr1:[i32;4]=[1,2,3,4]; //定义数组时指定默认值和长度(其实也隐式指定了类型) let arr2=[3;4]; //使用索引访问元素 println!("{}",arr1[0]);


3.函数 小tips:

  1. 准确来讲,parameters是形参,arguments是实参,但是一般都叫作参数
  2. rust是基于语句的语言
  3. 表达式(a+b)会返回一个值,但是语句(a+b;)不会!

rust中函数参数必须指明类型!

示例代码: fn plus_five(x:i32) ->i32 { println!(“the value x is {}“,x); x+5 }


4.控制流

if分支示例代码: if a>0 { println!("a>0"); } else if a<0 { println!("a<0"); } else { println!("a=0"); } //if也是一个表达式,因此也会有结果,可以这样利用 let condition=true; let number=if condition {1} else {2};

注意:

  1. if后面必须是bool类型,不能是其他类型,因为rust不会转换非布尔类型到布尔类型
  2. 第一个满足条件的arm会被执行
  3. else if 与else可选

match分支示例代码: let x=5; match x { 1=>println!("one"), 3=>println!("three"), 5=>println!("five"), _=>println!("other"), } //如果只看是否是某一种值,可以使用if let if let Some(3)=x { println!("Some(3)"); } else { println!("other"); } 注意:match的分支,要么穷举完所有的可能情况,要么列举一部分后加通配符分支

循环示例代码: //loop持续循环,可使用break停止循环并且返回某一结果 let num1=0; loop { num1+=1; if num1==100 { break num1*2; } }

//while条件循环 let num2=3; while num2!=0 { println!(num2); num2=num2-1; }

//for遍历循环 let arr=[1,2,3,4,5]; for element in arr.iter() { println!(element); }