前言

第 1 章 新时代的语言

书中这部分内容可以跳过。此处罗列下 Rust 和 C# 中术语的映射关系。

  1. Workspace -> Solution
  2. Crate -> Project
  3. Module -> Namespace
  4. Trait -> Interface
  5. Struct -> Class
  6. Function -> Method

第 2 章 流程控制

2.5.3 match 表达式与模式匹配

match 用于匹配各种情况。有点类似其他编程语言中的 switchcase 语句。

2.5.4 if letwhile let 表达式

第 8 章 字符串与集合类型

8.2 集合类型

8.2.1 动态可增长数组

相等性

let a = vec![1,2,3];
let b = vec![1,2,3];
assert!(a.eq(&b));  // True

8.2.2 映射集

第 9 章 构建健壮的程序

9.3 分层处理错误

9.3.1 可选值 Option<T>

9.3.2 错误处理 Result<T, E>

第 10 章 模块化编程

10.0 Cargo 工作空间

这部分内容书里面没有,是我自己加的。

  • Rust 中的工作空间 (Workspace) 即 C# 的解决方案 (Solution)。
  • Cargo 工作空间

10.0.1 新建一个工作空间

mkdir <workspace>
cd <workspace>
touch Cargo.toml

对映的 dotnet 操作

dotnet new sln -o <workspace>
cd <workspace>

10.0.2 新建一个不带 git 的 lib crate

cargo new <lib_name> --lib --vcs none

对映的 dotnet 操作

dotnet new classlib -o <lib_name>

10.0.3 新建一个不带 git 的 bin crate

cargo new <name> --vcs none

对映的 dotnet 操作

dotnet new console -o <bin_name>

10.0.4 构建依赖关系

添加以下内容到 <workspace>/Cargo.toml

[workspace]
members = [
    "<lib_name>",
    "<bin_name>"
]

添加以下内容到 <bin_name>/Cargo.toml 以表明依赖关系

[dependencies]
<lib_name> = { path = "../<lib_name>" }

对映的 dotnet 操作

dotnet sln add <lib_name>/<lib_name>.csproj
dotnet sln add <bin_name>/<bin_name>.csproj
dotnet add ./<bin_name>/<bin_name>.csproj reference ./<lib_name>/<lib_name>.csproj

10.2 模块系统