开端
从同学听到有关这个开源夏令营的事情,一方面对rust这种新兴语言颇为感兴趣,另一方面也正巧学习计算机系统知识,认识到计算机系统的精妙,也希望借此机会提高自己对计算机系统的理解,获得一定的开源经验。
链接
主要的笔记都记录在notion中,主要包含我rustlings过程中的思考和体会,记录比较精简。
https://ash-chair-1e2.notion.site/193e1434faf44e5587e71865fc9614af?v=6e2890c3bd084a77b864410b009d9706&pvs=4
第一阶段总结
这一阶段主要是熟悉rust语法以及相关知识。在我的学习中看来,rust主要有以下几个难点:
- 控制权转换。
- rust中,move是默认语义,而浅拷贝(在rust中被称为引用)成为了次要语义,这使得程序需要不断地考虑生命周期
- 引用的简写
- rust中让我最不能够理解的是引用的自动解引用功能,我认为一个强类型语言可以用更加明了的方式进行引用和非引用的区分。当然这只是我的浅薄观点,因为引用和非引用的自动转换实在让我伤透脑筋。
- 生命周期
- 实际上rust中存在对生命周期非常精准的控制,然而受限于我的学习速度,还没有对生命周期参数和控制有更深的了解。
- 大量的现代特性
- 在学习rust的过程中,我体会到了很多“旧语言”没有的特性,例如函数式编程、模板约束、宏的元编程等特性。这不禁让我想起了学习现代C++的某些特性(但是根本没有实际使用过)
第二阶段
接下来,主要就是学习riscv指令集,同时准备把更多时间花在系统课程上,配合CSAPP学习一个操作系统的基础实现。