2023秋冬季开源操作系统训练营-Notes

课程网站地址

Rustlings 练习进度排行榜 http://os2edu.cn/2023-autumn-rust-ranking

配套练习

学习教材

Rust 程序设计语言

通过例子学 Rust

Rust 中文社区

Course1

2023秋冬季开源操作系统训练营

环境搭建

所需依赖主要为 rustuprustlings

在 Archlinux 下安装 rustup:

1
sudo pacman -S rustup

安装 rustlings.

首先确保在 Github Classroom (点这里) 里领取了仓库, 先将仓库 clone 到本地:

1
2
3
4
git clone https://github.com/LearningOS/rust-rustlings-2023-autumn-zKurisu.git
cd rust-rustlings-2023-autumn-zKurisu
./install.sh
cargo install --force --path .

其会将 rustlings 编译安装在这个仓库中 (注意此时的 rustlings 并不在 PATH 变量中)

rustlings 基本使用

列出所有题目的状态:

1
rustlings list

实时查看自己做题的状态:

1
rustlings watch

这个命令还会实时对 exercise 进行编译.

仅查看一次做题状态:

1
rustlings verify

测试单独的题目:

1
rustlings run myExercise1

或:

1
rustlings run next

标记一个 exercise:

1
rustlings hint myExercise1

同样有:

1
rustlings hint next

想要通过一个 exercise 的进度, 需要手动删除:

1
// I AM NOT DOWN

exercise 文件中的这行注释.

用 cargo 创建和管理本地的项目

cargo 是 rust 的包管理器和项目管理器.

创建项目:

1
2
cargo new hello_world
cd hello_world

编译和运行项目文件:

1
cargo run

仅编译:

1
cargo build

检查代码:

1
cargo check

变量与可变性

变量声明:

1
let x = 5;

注意, 在 Rust 中, 变量默认是不可变的 (immutable), 若要可变, 需要加上 mut 关键字:

1
let mut x = 5;

const 表达式

命名约定为全大写, 其在编译时确定值:

1
const ONE_CONST_VAR: num = 10 * 10;

rust 的命名里都是用下划线分隔单词.

语句和表达式

rust 是基于表达式的语言.

  • 语句, 不返回值
  • 表达式, 有返回值

所有权概念

所有权规则:

  • Rust 中的每一个值都有一个所有者 (owner)
  • 值在任一时刻有且只有一个所有者
  • 当所有者 (变量) 离开作用域, 这个值将被丢弃

如:

1
2
let x = 123;
let y = x;

此时 123 这个值的所有者就是 y, 而 x 在此时被废弃, 不再使用.


2023秋冬季开源操作系统训练营-Notes
http://example.com/2023/10/09/2023秋冬季开源操作系统训练营-Notes/
作者
Jie
发布于
2023年10月9日
许可协议