上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 79 下一页
摘要: Placeholder Types 在trait定义中,可以使用Associated types在定义中放一些type placeholder,并用这些type placeholder作为返回值,参数等描述类型之间的关系。接着,trait的实现中就可以将这些type placehold设置为具体类型 阅读全文
posted @ 2020-10-28 00:38 雪溯 阅读(75) 评论(0) 推荐(0) 编辑
摘要: Unsafe Unsafe能够绕开rust强调的内存安全保证(memory safety guarantees),Unsafe的五大功能是: 1. Dereference a raw pointer,获取一个裸指针对应的数据 2. 调用其他unsafe的代码 3. 获取或者修改可变的static变量 阅读全文
posted @ 2020-10-28 00:09 雪溯 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 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 雪溯 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 继承/多态性 书中认为继承给子类分享了一些可能并不需要的代码,因此并不好。Rust中最接近继承/多态的是trait。 通过使用不同的Trait和Trait bound,可以达到类似接口的效果。我们可以要求一些参数/域实现了某种Trait而无需知道究竟这些参数/域是什么具体类型,这样的参数/域称之为T 阅读全文
posted @ 2020-10-27 22:11 雪溯 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 使用线程来并行化任务一方面可以加快速度,避免因为IO等待耗费太久时间,另外一方面,也带来了资源竞争,死锁和潜在的难以复现的种种bug。不同的编程语言采取不同策略来生成管理调度线程,如果用户在编程语言中申请一个线程,就通过系统接口获取系统的一个线程,那么就称之为1:1模型。编程语言提供的线程被称为gr 阅读全文
posted @ 2020-10-27 21:03 雪溯 阅读(112) 评论(0) 推荐(0) 编辑
摘要: Smart Pointer也是指向内存中一块数据的指针的一种,但是它提供了比指针更为强大的功能。Smart Pointer与引用的区别是,引用只是借用了对那个的数据,但是smart pointer有时会直接拥有对应的数据。 String和Vec<T>都可以算作是Smart Pointer,都有met 阅读全文
posted @ 2020-10-27 17:10 雪溯 阅读(177) 评论(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 雪溯 阅读(184) 评论(0) 推荐(0) 编辑
摘要: Closures Closure是匿名函数,并且可以存下来。此外,Closure会获取创建时的作用域中的变量。 fn generate_workout(intensity: u32, random_number: u32) { let expensive_closure = |num| { //cl 阅读全文
posted @ 2020-10-26 20:08 雪溯 阅读(101) 评论(0) 推荐(0) 编辑
摘要: src/lib.rs use std::error::Error; use std::fs; struct Config { pub query: String, pub filename: String, pub case_sensitive: bool, } impl Config { fn n 阅读全文
posted @ 2020-10-26 18:35 雪溯 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 单元测试 The Rust Programming Language认为,单元测试分为3部分,1. 设置好需要的数据和状态 2. 运行需要测试的代码 3. 检查返回的结果是否如预期。 使用cargo test即可运行以下单元测试。 #[cfg(test)] mod tests { #[test] f 阅读全文
posted @ 2020-10-26 18:08 雪溯 阅读(107) 评论(0) 推荐(0) 编辑
上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 79 下一页