Common Programming Concepts
Common Programming Concepts
Comment
1  | // 单行注释  | 
Variables and Mutability
let
$rust$ 基本变量默认不可变
使用 $let$ 关键字声明变量
1  | let x = 5;  | 
也可以显示声明变量类型
格式 data_name: type 
1  | let x: i32 = 5;  | 
变量名小写,大写 $warning$ 警告!
1  | let X = 5;  | 
mut
使用 $mut$ 关键字表示变量可变
1  | let mut y = 5;  | 
const
使用 $const$ 关键字表明常量 $(constants)$
必须显示声明常量类型
1  | const YEAR : i32 = 2024;  | 
常量名一般全部大写,小写 $warning$ 警告!
1  | const Year : i32 = 2024;  | 
shadowing
变量名与前面变量名相同,后面数据覆盖前面
1  | let s = 5;  | 
吐槽:感觉 $shadowing$ 会造成错误,为什么不直接报错,不小心用了相同名字,前面数据就会被覆盖,这个设计感觉没用
Data Types
Integer Types
| Length | Signed | Unsigned | 
|---|---|---|
| 8-bit | i8 | 
u8 | 
| 16-bit | i16 | 
u16 | 
| 32-bit | i32 | 
u32 | 
| 64-bit | i64 | 
u64 | 
| 128-bit | i128 | 
u128 | 
| arch | isize | 
usize | 
Integer Literals in Rust
| Number literals | Example | 
|---|---|
| Decimal | 98_222 | 
| Hex | 0xff | 
| Octal | 0o77 | 
| Binary | 0b1111_0000 | 
Byte (u8 only) | 
b'A' | 
数据 $overflow$ 会导致 $error$
1  | let x: i8 = 100;  | 
Floating-Point Types
| Length | Type | 
|---|---|
| 32-bit | f32 | 
| 64-bit | f64 | 
Numeric Operations
$+ \quad \quad - \quad \quad * \quad \quad / \quad \quad %$
$+= \quad -= \quad *= \quad /= \quad %=$
1  | // addition  | 
应该和 $C++$ 是一样的
The Boolean Type
1  | let t = true;  | 
The Character Type
1  | let c = 'z';  | 
Compound Types
Tuple
元组内数据类型可以不同
可以取出来访问,或用下标访问 data_name.index
1  | let x: (i32, f32, bool) = (1, 2.0, false);  | 
越界会 $Error!$
1  | println!("{} {} {}", x.0, x.1, x.3);  | 
直接打印元组
1  | println!("{x}");// Error  | 
Array
类型必须一样
使用 [] 来表示
1  | let x = [1, 2, 3, 4, 5];  | 
声明相同数据的数组
1  | // [val; size] init with same val  | 
注意 [] 内是 ;
访问数组元素,使用 data_name[index]
1  | println!("{}", x[0]);  | 
Functions
使用关键字 $fn$ 来声明函数
不需要像 $C++$ 一样先声明后调用
1  | fn fn_name(Parameters) -> type {  | 
-> type 可不写
例如
1  | println!("{}", test(10));  | 
这样也可
1  | fn test(n: i32) -> i32 {  | 
函数名小写,大写 $warning$ 警告!
1  | fn TEST(n: i32) -> i32 {  | 
Control Flow
if
$if$ 后条件必须为 $bool$ 类型!!!
1  | let number = 3;  | 
多条件用 $&&$ 或 $||$ 连接
1  | let number = 3;  | 
$else \ if$ 使用
1  | let number = 6;  | 
let + if
$if$ 和 $else$ 后的类型必须一样
有点像三目运算符复制
1  | let condition = true;  | 
loop
一直循环
break 跳出循环,continue 继续下一次循环
1  | loop {  | 
while
基本形式
1  | while condition {}  | 
例如
1  | while x > 0 {  | 
for
基本形式
1  | for x in item {}  | 
例如
1  | for x in [3; 5] { // 产生长度为 5 的全是 3 的数组  | 
1  | for i in (1..4) { // (l..r) 表示区间 [1, 4) 不含 4  | 
以上就是 $Rust$ 的基本概念
个人感想:$Rust$ 的语法规则非常严格,但是有一些没必要的语法糖。
参考 The Rust Programming Language
更多内容参考我的 Blog

