os-comp-记录
这一博文用于记录每日所学
2022/10/20
以 Rust 语言圣经 作为学习材料来学习 Rust 语言。目前进度看到字符串与切片。不得不说,Rust 还是有点难度的。
今日感悟:
- 表达式与语句。这东西确实是 C++ 所不在意的,目前还是以 C++ 的理解来认识这一表达式,但是语句没想到啥很好的理解方式。暂且忽略
- 学习所有权的时候,突然能理解到 C++ 的移动语义具体是在说什么了。所以这里目前也不是什么难点
- 借用和解引用让人感觉特别繁琐且麻烦
2022/10/21
- 复合类型有点麻烦!
- 枚举的特性在 rust 里是一个挺不错的存在,能够包罗万千,我很喜欢这种东西
- 结构体内部变量的所有权也能够转移出去,感觉这个特性很可怕,还是得悠着点用。其他的地方倒和 C++ 没啥太大区别
- 流程控制这里,for 循环可能导致的所有权转移需要额外注意下,不过用久了估计就是习惯性加上引用
2022/11/02
今日感悟:本来打算暂时放弃学习了,想着以现在工作的语言为主,先好好学学 C++ 的模板,不过突然仔细想了想,也不见得我就真乖乖去学丫,还是捡起来吧。这回以测试为主,边测试边啃,快速过完 rust 的基本概念,之后学习用到了再来啃。
- 学到了个 as 关键词,看起来是用来转换类型的
- 原来序列可以划分为两类,… 和 …=,这是之前忽视的地方
- 单元类型占用空内存,这倒跟 C++中空类不一样,这样怎么知道这个单元类型的具体位置呢?
- rust 的字符原来采用的是 Unicode 编码,这个和 C++ 的 char 类型不一样,C++ 的 char 类型是 ASCII 编码,这个需要注意下,之前一直以为是 utf-8。
- 表达式和语句究竟是怎样的一个区别到现在都还没搞懂,暂时也只能记住 += 这东西不是表达式
2022/11/05
今日感悟:太忙了太忙了,工作后要学习下真的好难抽出时间。
- 单个字符采用 Unicode 编码,占用四个字节,但是字符串却是采用 UTF-8 编码。这个地方确实有点诡异
- 借用和所有权那里倒感觉还好,这套机制挺不错的,但是学习起来难度并不大,所有权最为简单的理解就是
std::unique_ptr
- 枚举看来看去,感觉就是一个带名字的元组,同时提供了一个父类的概念出来
- 始终
if let
语句有点难以理解,从 StackOverflow 上找到一个回答,虽然也没有很好的解释,但是从评论找到了 Refutability: Whether a Pattern Might Fail to Match 这个章节,倒是解决了一点关于模式匹配的困惑。let
的要求是不可驳模式匹配,所以if let PATTERN = SOME_VALUE {}
这里可以这么理解,如果 pattern 能够匹配到 SOME_VALUE,那么执行后续的表达式。这样即便 PATTERN 会是Some(x)
需要赋值的东西,也可以通过匹配来理解。 - 大抵是 C++ 写多了,对于诸如 匹配守卫,**@绑定** 这类语法糖,唯一的感觉就是好繁琐
番外:
我们可以写出这样的代码:
1 | let o: Option<i32> = Some(5); |
编译的时候一定会报错:
1 | = note: expected unit type `()` |
根据 Refutability: Whether a Pattern Might Fail to Match 所了解到的,一个简单的解释角度就是,let
这东西所接受的值是 irrefutable 的,如果 o 是 None 的话,将不会产生任何的匹配,let
就接受不到任何的东西。在 StackOverflow 也有一个回答,但是不知道他想表达什么。
2022/11/06
- 在刷泛型的题目的时候,发现第一题所声明的结构体就看不懂,仔细翻了翻回去,才发现还有元组结构体这么个玩意儿
- 模板,泛型这东西,确实有点难,很不好理解。关掉 GitHub Copilot 后按着示例一点点写一遍代码,感觉还是有点繁琐,但是清晰了很多
2022/11/12
- 几天没看书了,确实忙啊
- 特征这东西确实不简单,不过暂时也只是了解了而已。不理解为什么不整个继承,却要使用特征对象这样的东西
2022/11/13
今日感悟:基础部分这就算是学完了,接下来该刷题目了
- 类型转换也是个麻烦事,不过一时半会暂时可以不管
- 后续的基础内容看起来还好,没啥特别要紧的。
- 本文标题:os-comp-记录
- 本文作者:Jacksing
- 创建时间:2022-10-20 00:50:16
- 本文链接:https://wzzzx.github.io/OS/os_comp_daily_schedule/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
评论