Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

English Original

面向 C# 开发者的 Rust 核心关键字速查

你将学到什么: 通过一份速查表理解 Rust 关键字与 C# 对应概念之间的映射,包括可见性修饰符、所有权相关关键字、控制流、类型定义和模式匹配语法。

难度: 🟢 初级

理解 Rust 的关键字及其用途,可以帮助 C# 开发者更快建立语言直觉,并在阅读代码时迅速定位语义。


可见性与访问控制

C# 访问修饰符

public int PublicField;     // 公开
private int privateField;   // 私有(仅本类)
internal int internalField; // 当前程序集

Rust 可见性关键字

#![allow(unused)]
fn main() {
pub struct PublicStruct {
    pub public_field: i32,     // 公开
    private_field: i32,        // 默认私有(无需关键字)
}

pub(crate) fn internal_fn() {} // 当前 crate 的公开(相当于 internal)
}

内存与所有权

C# 内存相关关键字

public void Method(ref int val); // 引用传递
public void Method(in int val);  // 只读引用 (C# 7.2+)

Rust 所有权关键字

#![allow(unused)]
fn main() {
fn read_only(data: &Vec<i32>);   // 不可变引用 (&)
fn modify(data: &mut Vec<i32>); // 可变引用 (&mut)

let closure = move || { ... };   // 强制在闭包中移动所有权 (move capture)
let boxed = Box::new(42);        // 堆分配 (类似 C# 引用类型的 new)
}

控制流

C# 与 Rust 对比

  • return: 在 Rust 中,如果最后一行是表达式,它是隐式返回的。
  • loop: 真正的无限循环,相当于 while(true)
  • break / continue: 标准用法,但 breakloop 中可以向外返回一个值。

类型定义

C#Rust备注
class / structstruct数据结构
interfacetrait共享行为
enumenum代数数据类型 (ADT),比 C# 枚举更强大
using aliastype类型别名

关键字总结速查表

用途C#Rust关键差异
可见性public, privatepub, 默认私有更细粒度的 pub(crate) 控制
变量var, readonlylet, let mut默认不可变
函数method()fn独立的顶层函数
模式switch, ismatch, if let必须满足穷尽性匹配
引用ref, in&mut, &编译期的借用检查