摘要: Rust中的Pattern能够包含以下内容: a) literal b)Destructured arrays, enums, structs, or tuples c) 变量 d) 通配符 e) placeholders 以下的都算是pattern: a) match Arms b) if let 阅读全文
posted @ 2020-10-27 23:19 雪溯 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 继承/多态性 书中认为继承给子类分享了一些可能并不需要的代码,因此并不好。Rust中最接近继承/多态的是trait。 通过使用不同的Trait和Trait bound,可以达到类似接口的效果。我们可以要求一些参数/域实现了某种Trait而无需知道究竟这些参数/域是什么具体类型,这样的参数/域称之为T 阅读全文
posted @ 2020-10-27 22:11 雪溯 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 使用线程来并行化任务一方面可以加快速度,避免因为IO等待耗费太久时间,另外一方面,也带来了资源竞争,死锁和潜在的难以复现的种种bug。不同的编程语言采取不同策略来生成管理调度线程,如果用户在编程语言中申请一个线程,就通过系统接口获取系统的一个线程,那么就称之为1:1模型。编程语言提供的线程被称为gr 阅读全文
posted @ 2020-10-27 21:03 雪溯 阅读(111) 评论(0) 推荐(0) 编辑
摘要: Smart Pointer也是指向内存中一块数据的指针的一种,但是它提供了比指针更为强大的功能。Smart Pointer与引用的区别是,引用只是借用了对那个的数据,但是smart pointer有时会直接拥有对应的数据。 String和Vec<T>都可以算作是Smart Pointer,都有met 阅读全文
posted @ 2020-10-27 17:10 雪溯 阅读(171) 评论(0) 推荐(0) 编辑
摘要: Profiles Cargo有两大主要的profiles:dev和release。 例如,可以在Cargo.toml里自定义: [profile.dev] opt-level = 0 [profile.release] opt-level = 3 Publish crate to Crates.io 阅读全文
posted @ 2020-10-27 14:57 雪溯 阅读(179) 评论(0) 推荐(0) 编辑