Skip to content
破仑的博客
Go back

Rust 笔记 - 通用编程概念

《Rust编程语言》笔记之一

关于cargo

通用编程概念

如果需要使用关键字作为变量名称,在变量前加r#,比如r#match

变量与可变性

变量默认是不变的,可以使用mut关键字声明可变的变量:

let mut x = 10;

使用const声明常量,常量有几个特征:

  1. 不能使用mut关键字
  2. 必须声明类型
  3. 习惯用大写字母加下划线命名

可以使用let关键字对一个变量多次声明,这样后面声明的变量会将第一个声明的变量隐藏,这种行为叫做隐藏(shadowing):

let x = 10;
let x = 20;
let x = "zhang"

数据类型

标量类型

整型
长度有符号无符号
8-biti8u8
16-biti16u16
32-biti32u32
64-biti64u64
archisizeusize

arch依赖计算机的架构,如果是 64 位的架构上,是 64 位,如果是 32 架构,是 32 位。

浮点数

有两种类型: f32,f64

复合类型

Rust中有两种复合类型: 元组(tuple)数组(array)

元组

元组是一个将多个类型的值组合进一个复合类型的主要方式。

fn main() {
  let tup: (i32, f32, i8) = (32, 12.3, 8);
  let (foo, bar, zoo) = tup;
  println!("foo: {}, bar: {}, zoo: {}", foo, bar, zoo)
}
数组
let arr: [i32, 5] = [1, 2, 3, 4, 5];

函数

rust中,使用snake case规范风格: 小写字母加下划线。

fn say_something() {
  // expressions
}

Rust 是一门基于表达式(expression-based)的语言。 // 注: 不理解

在 Rust 中,语句不返回值,因此不能把let语句复制给另外一个变量,如:

let x = (let y = 10); // 报错: error: expected expression, found statement (`let`)

控制流

if

循环

Rust中有三种循环: loop, while, for

小结

Rust中的控制流和其它语言中的比较类似,唯一比较特殊的是表达式的概念,比如,if是一个表达式语句,可以直接赋值给let,这一点挺有意思的。

练习代码


Share this post on:

Previous Post
Rust 笔记 - 枚举与模式匹配
Next Post
《Node.js事件循环》笔记