type
Post
status
Published
date
Jan 6, 2026
slug
summary
tags
category
技术积累
icon
password
了解一个语言的方法是翻译一份文档
 

起点

讨论Rust安装,常规`Hello Rust!`,使用名为`cargo`的Rust构建系统和包管理器

安装

Windows 安装

通过rustup下载Rust到Windows,需要 MSVC prerequisites - The rustup book

Linux/macOS 安装

在终端并输入一下命令:

更新和卸载

 

Hello Rust!

 

Cargo

  • 构建代码,下载依赖库并编译库
 
 
 

猜数字

生成随机数,先添加rand库
然后重新build,这样就添加了一个名为rand的外部依赖,外部依赖可以在 crates.io 中查找
 

编程概念速查

变量 Variables

  • 变量默认不可变
  • 当值绑定到名称后无法修改值
    • 但可以通过 添加 `mut 变量名` 来使其可变

常量 Constants

  • 始终不可变
  • 大写+下划线
  • 常量表达式,不能动态计算

遮蔽/覆盖 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
Architecture-dependent
isize
usize
Number literals
Example
Decimal
98_222
Hex
0xff
Octal
0o77
Binary
0b1111_0000
Byte (u8 only)
b'A'

浮点类型 Floating-Point Types

f32f64
  • 都有符号

布尔类型 Boolean Type

truefalse

字符类型 Character Type

  • Unicode字符集

复合类型 Compound Types

元组 Tuple
  • 固定长度,可以用不同类型值
数组 Array
  • 数组中的类型相同,固定长度
 

运算符

Operator
Example
Explanation
Overloadable?
!
ident!(...)ident!{...}ident![...]
Macro expansion
!
!expr
Bitwise or logical complement
Not
!=
expr != expr
Nonequality comparison
PartialEq
%
expr % expr
Arithmetic remainder
Rem
%=
var %= expr
Arithmetic remainder and assignment
RemAssign
&
&expr&mut expr
Borrow
&
&type&mut type&'a type&'a mut type
Borrowed pointer type
&
expr & expr
Bitwise AND
BitAnd
&=
var &= expr
Bitwise AND and assignment
BitAndAssign
&&
expr && expr
Short-circuiting logical AND
*
expr * expr
Arithmetic multiplication
Mul
*=
var *= expr
Arithmetic multiplication and assignment
MulAssign
*
*expr
Dereference
Deref
*
*const type*mut type
Raw pointer
+
trait + trait'a + trait
Compound type constraint
+
expr + expr
Arithmetic addition
Add
+=
var += expr
Arithmetic addition and assignment
AddAssign
,
expr, expr
Argument and element separator
-
- expr
Arithmetic negation
Neg
-
expr - expr
Arithmetic subtraction
Sub
-=
var -= expr
Arithmetic subtraction and assignment
SubAssign
->
fn(...) -> type|…| -> type
Function and closure return type
.
expr.ident
Field access
.
expr.ident(expr, ...)
Method call
.
expr.0expr.1, and so on
Tuple indexing
..
..expr....exprexpr..expr
Right-exclusive range literal
PartialOrd
..=
..=exprexpr..=expr
Right-inclusive range literal
PartialOrd
..
..expr
Struct literal update syntax
..
variant(x, ..)struct_type { x, .. }
“And the rest” pattern binding
...
expr...expr
(Deprecated, use ..= instead) In a pattern: inclusive range pattern
/
expr / expr
Arithmetic division
Div
/=
var /= expr
Arithmetic division and assignment
DivAssign
:
pat: typeident: type
Constraints
:
ident: expr
Struct field initializer
:
'a: loop {...}
Loop label
;
expr;
Statement and item terminator
;
[...; len]
Part of fixed-size array syntax
<<
expr << expr
Left-shift
Shl
<<=
var <<= expr
Left-shift and assignment
ShlAssign
<
expr < expr
Less than comparison
PartialOrd
<=
expr <= expr
Less than or equal to comparison
PartialOrd
=
var = exprident = type
Assignment/equivalence
==
expr == expr
Equality comparison
PartialEq
=>
pat => expr
Part of match arm syntax
>
expr > expr
Greater than comparison
PartialOrd
>=
expr >= expr
Greater than or equal to comparison
PartialOrd
>>
expr >> expr
Right-shift
Shr
>>=
var >>= expr
Right-shift and assignment
ShrAssign
@
ident @ pat
Pattern binding
^
expr ^ expr
Bitwise exclusive OR
BitXor
^=
var ^= expr
Bitwise exclusive OR and assignment
BitXorAssign
|
pat | pat
Pattern alternatives
|
expr | expr
Bitwise OR
BitOr
|=
var |= expr
Bitwise OR and assignment
BitOrAssign
||
expr || expr
Short-circuiting logical OR
?
expr?
Error propagation

函数 Functions

  • 字母小写 下划线分隔

if 表达式

  • if 条件后必须是布尔值,不能像 C 那样用整数充当真值
    • if / else if / else 整体是一个表达式,可以给变量赋值
    •  

loop 循环(返回值)

  • loop 表示无限循环,必须手动 break 跳出
  • break 后面可以跟一个值,作为整个 loop 表达式的结果
 

while 循环

  • while 先判断条件,为真就执行循环体,否则结束
  • 适合「条件未知、每次循环都要重新检查」的场景

for 循环(遍历区间和集合)

  • for item in collection 用于遍历数组、切片、迭代器,是 Rust 中推荐的循环方式
  • (1..4) 是半开区间 1,2,3;rev() 可反转迭代顺序

match 模式匹配

  • match 必须覆盖所有可能情况,否则编译失败
  • 分支用 值 => 表达式 的形式,最后一个分支常用 _ 作为兜底
 

Ownership 所有权