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