ToB企服应用市场:ToB评测及商务社交产业平台

标题: Rust常见编程概念 [打印本页]

作者: 守听    时间: 2024-3-21 10:08
标题: Rust常见编程概念
目录

本文大部分内容来自官方文档,对于一些基础常识的内容做了删减,适合已经掌握其它编程语言的人查阅,原文档内容参考常见编程概念

变量和可变性

变量默认是不可变的,可以在变量名前添加 mut 来使其可变。
示例代码:
  1. fn main() {
  2.     //let x = 5; 默认不可变,编译报错
  3.     let mut x = 5;
  4.     println!("The value of x is: {x}");
  5.     x = 6;
  6.     println!("The value of x is: {x}");
  7. }
复制代码
常量

类似于不可变变量,常量 (constants)是绑定到一个名称的不允许改变的值,常量与变量的区别:
示例代码:
  1. const THREE_HOURS_IN_SECONDS: u32 = 60 * 60 * 3;
复制代码
Rust 对常量的命名约定是在单词之间使用全大写加下划线,编译器能够在编译时计算一组有限的操作。
在声明它的作用域之中,常量在整个程序生命周期中都有效,将硬编码值声明为常量有助于后期代码维护。
隐藏

可以用相同变量名称来隐藏一个变量,以及重复使用 let 关键字来多次隐藏,如下所示:
  1. fn main() {
  2.     //将 x 绑定到值 5 上
  3.     let x = 5;
  4.     //创建了一个新变量 x
  5.     let x = x + 1;
  6.     {
  7.         //创建了一个新变量 x
  8.         let x = x * 2;
  9.         println!("The value of x in the inner scope is: {x}");
  10.         //输出 The value of x in the inner scope is: 12
  11.     }
  12.     println!("The value of x is: {x}");
  13.     //输出 The value of x is: 6
  14. }
复制代码
隐藏与将变量标记为 mut 是有区别的
  1. //字符串类型
  2. let spaces = "   ";
  3. //数字类型
  4. let spaces = spaces.len();
复制代码
隐藏使我们不必使用不同的名字,如 spaces_str 和 spaces_num。
下面这种代码会报错,不能改变变量的类型:
  1. let mut spaces = "   ";
  2. spaces = spaces.len();
复制代码
注:不要滥用隐藏特性,被隐藏变量和新变量尽量处于同一个作用域
数据类型

每一个值都属于某一个 数据类型(data type),有两类数据类型子集:标量(scalar)复合(compound)
Rust 是 静态类型(statically typed)语言,编译时就必须知道所有变量的类型。
根据值及其使用方式,编译器通常可以推断出我们想要用的类型:

当多种类型均有可能时必须增加类型注解,例如:
  1. let guess: u32 = "42".parse().expect("Not a number!");
复制代码
标量类型

标量(scalar)类型代表一个单独的值,Rust 有四种基本的标量类型:整型浮点型布尔类型字符类型
整型

整数 是一个没有小数部分的数字,Rust 内建的整数类型如下:
长度有符号无符号8-biti8u816-biti16u1632-biti32u3264-biti64u64128-biti128u128archisizeusize可以使用其中的任一个来声明一个整数值的类型,类型取值范围如下(n 是变体使用的位数):
可以使用下表中的任何一种形式编写数字字面值:
数字字面值例子Decimal (十进制)98_222Hex (十六进制)0xffOctal (八进制)0o77Binary (二进制)0b1111_0000Byte (单字节字符)(仅限于u8)b'A'
如果不知道使用哪种类型的数字,可以使用 Rust 的默认类型,数字类型默认是 i32isize 或 usize 主要作为某些集合的索引
关于整型溢出的处理:
为了显式地处理溢出的可能性,可以使用这几类标准库提供的原始数字类型方法:
浮点型

Rust 也有两个原生的 浮点数(floating-point numbers)类型,分别是 f32f64,分别占 32 位和 64 位,默认类型是 f64
  1. fn main() {
  2.     let x = 2.0; // f64
  3.     let y: f32 = 3.0; // f32
  4. }
复制代码
浮点数采用 IEEE-754 标准表示,f32 是单精度浮点数,f64 是双精度浮点数
注:Rust 中的所有数字类型都支持基本数学运算:加法、减法、乘法、除法和取余,整数除法会向零舍入到最接近的整数
布尔型

Rust 中的布尔类型有两个可能的值:true 和 false,使用 bool 表示:
  1. fn main() {
  2.     let t = true;
  3.     let f: bool = false;
  4. }
复制代码
字符类型

Rust 的 char 类型是语言中最原生的字母类型:
[code]fn main() {    //单引号声明 char 字面量,双引号声明字符串字面量    let c = 'z';    let z: char = 'ℤ';     let heart_eyed_cat = '
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4