From 05d646a7ac56204fa1949d1af55dfb4d72697858 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A9=BA=E7=99=BD?= <103114267+getKongBai@users.noreply.github.com> Date: Fri, 26 Apr 2024 20:42:59 +0800 Subject: [PATCH] KongBai --- ...2\347\241\200-\346\212\245\345\221\212.md" | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 "source/_posts/2024-rcore-os\347\254\254\344\270\200\351\230\266\346\256\265-Rust\345\237\272\347\241\200-\346\212\245\345\221\212.md" diff --git "a/source/_posts/2024-rcore-os\347\254\254\344\270\200\351\230\266\346\256\265-Rust\345\237\272\347\241\200-\346\212\245\345\221\212.md" "b/source/_posts/2024-rcore-os\347\254\254\344\270\200\351\230\266\346\256\265-Rust\345\237\272\347\241\200-\346\212\245\345\221\212.md" new file mode 100644 index 00000000000..c54929f8792 --- /dev/null +++ "b/source/_posts/2024-rcore-os\347\254\254\344\270\200\351\230\266\346\256\265-Rust\345\237\272\347\241\200-\346\212\245\345\221\212.md" @@ -0,0 +1,41 @@ +--- +title: 2024 rcore-os第一阶段 Rust基础 报告 +date: 2024-04-23 14:37:01 +tags: [ rust,基础,rcore ] +--- + +# 2024 rcore-os第一阶段 Rust基础 报告 + +### 作者:李明宇(getKongBai) + +## 学习内容难点 + +### Rust所有权与生命周期 + +Rust的所有权要求每个值只允许有一个变量拥有其所有权,引用类似于并发的读写锁,读引用可以同时存在,但是写引用不能同时存在、也不能与读引用同时存在,写独占读共享。Rust的生命周期确保引用在有效期内是有效的。 + +### Rust智能指针 + +Rust的智能指针包括但不限于Box、Rc和RefCell,Box用于在堆上分配内存,Rc用于在堆上共享内存 + +### Rust并发 + +Rust的所有权机制在并发时完全就可以当锁用,但也因此:通过通讯来共享内存、而不是通过共享内存来通讯。 + +### Rust宏 + +学的很少,一种基于语法的元编程,需要用模式匹配解语法树 + +### Rust链表 + +最折磨的一集,引用来回变化,满地的unsafe + +## 写Rust的小技巧 + +### 少用可变变量 + +可变变量需要来回考虑可变引用 + +### 用函数式编程解决问题 + +使用函数和递归可以解决很多变量所有权问题和引用的相互冲突(尽量写纯函数)。写数据结构的时候很多代码第一开始我用循环,结果被各种引用折磨,后来用递归实现可以少考虑很多引用问题