随笔分类 - Rust
摘要:环境 Time 2022-05-21 Rust 1.61.0 前言 说明 参考:https://fasterthanli.me/articles/recursive-iterators-rust 目标 对于递归类型的结构,实现递归迭代。 自定义类型 struct Node<T> { values:
阅读全文
摘要:环境 Time 2022-05-21 Rust 1.61.0 前言 说明 参考:https://doc.rust-lang.org/std/iter/index.html 目标 接前一节,在迭代的过程中,修改每个迭代的元素。 自定义类型 #[derive(Debug)] struct MyData<
阅读全文
摘要:环境 Time 2022-05-21 Rust 1.61.0 前言 说明 参考:https://doc.rust-lang.org/std/iter/index.html 目标 接前一节,在迭代的过程中,修改每个迭代的元素。 自定义类型 #[derive(Debug)] struct MyData<
阅读全文
摘要:环境 Time 2022-05-21 Rust 1.61.0 前言 说明 参考:https://doc.rust-lang.org/std/iter/index.html 目标 接前一节,之前迭代都是直接拿走所有权,有时候只需要借用而不需要所有权。 自定义类型 #[derive(Debug)] st
阅读全文
摘要:环境 Time 2022-05-21 Rust 1.61.0 前言 说明 参考:https://doc.rust-lang.org/std/iter/index.html 目标 接前一节,理解 Iterator 自动实现了 IntoIterator。 自定义类型 struct MyData<T: D
阅读全文
摘要:环境 Time 2022-05-21 Rust 1.61.0 前言 说明 参考:https://doc.rust-lang.org/std/iter/trait.IntoIterator.html 目标 接前一节,实现结构体中的元素是泛型的迭代器。 自定义类型 struct MyData<T: De
阅读全文
摘要:环境 Time 2022-05-21 Rust 1.61.0 前言 说明 参考:https://doc.rust-lang.org/std/iter/trait.IntoIterator.html 目标 接前一节,实现结构体中的元素是泛型的迭代器。 自定义类型 struct MyData<T: De
阅读全文
摘要:环境 Time 2022-05-21 Rust 1.61.0 前言 说明 参考:https://doc.rust-lang.org/std/iter/trait.IntoIterator.html 目标 接前一节,实现结构体中的元素不是 Copy 的迭代器。 自定义类型 struct MyData
阅读全文
摘要:环境 Time 2022-05-21 Rust 1.61.0 前言 说明 参考:https://doc.rust-lang.org/std/iter/trait.IntoIterator.html 目标 前一节自定义了一个类型来实现迭代器,并且自定义了一个方法来转化成迭代器。标准库中提供了一个转化成
阅读全文
摘要:环境 Time 2022-05-21 Rust 1.61.0 前言 说明 参考:https://doc.rust-lang.org/std/iter/index.html 目标 有时候自定义的 struct 较复杂,需要单独创建另一个结构体来实现迭代器。 自定义类型 struct MyData {
阅读全文
摘要:环境 Time 2022-05-19 Rust 1.60.0 前言 说明 参考:https://doc.rust-lang.org/std/iter/index.html 目标 针对自定义类型,实现一个迭代器。 自定义类型 #[derive(Default, Debug)] struct Count
阅读全文
摘要:环境 Time 2022-05-04 Rust 1.60.0 前言 说明 默认情况下,Rust 只能有一个可变引用和多个不可变引用,而 RefCell 可以实现内部可变。 目标 内部可变 RefCell 的方法练习。 new fn main() { let cell = RefCell::new(4
阅读全文
摘要:环境 Time 2022-03-25 Rust 1.59.0 示例 get_or_insert_with fn main() { let mut name = Some("JiangBo"); println!("{:?}", name.get_or_insert_with(|| "Rust"));
阅读全文
摘要:环境 Time 2022-03-25 Rust 1.59.0 示例 iter_mut fn main() { let mut name = Some("JiangBo".to_owned()); println!("{:?}", name.iter_mut().next()); } and fn m
阅读全文
摘要:环境 Time 2022-03-25 Rust 1.59.0 示例 unwrap_unchecked fn main() { let name = Some("JiangBo"); println!("{:?}", unsafe { name.unwrap_unchecked() }); } map
阅读全文
摘要:环境 Time 2022-03-25 Rust 1.59.0 示例 is_some fn main() { let name = Some("JiangBo"); println!("{:?}", name.is_some()); } is_none fn main() { let name = S
阅读全文
摘要:环境 Time 2022-03-24 Rust 1.59.0 示例 get_mut fn main() { let mut map = HashMap::from([("a", 1), ("b", 2), ("c", 3)]); if let Some(v) = map.get_mut("c") {
阅读全文
摘要:环境 Time 2022-03-24 Rust 1.59.0 示例 hasher fn main() { let hasher = RandomState::new(); let map: HashMap<i32, i32> = HashMap::with_hasher(hasher); print
阅读全文
摘要:环境 Time 2022-03-24 Rust 1.59.0 示例 into_values fn main() { let map = HashMap::from([("a", 1), ("b", 2), ("c", 3)]); map.into_values().for_each(|e| prin
阅读全文
摘要:环境 Time 2022-03-24 Rust 1.59.0 示例 new fn main() { let map: HashMap<&str, i32> = HashMap::new(); println!("{:?}", map.capacity()); } with_capacity fn m
阅读全文