Rust 的迭代器设计的非常强大和具有高度的一致性,在其他语言里写起来可能会很啰嗦。 生成 HashMap, BTreeMap 的时候需要每个元素为一个二元组结构, (key, value)。 use std::collections::...
Rust 的强制类型转换的时候要先转为离自己最近的类型的指针,再转为其他指针,然后 Drefer 得到新类型的变量。 struct A { a: u64, b: u64, c: u64, d: u64, } #[derive(Debug, PartialEq)]...
第一种: xxx = futures::executor::block_on(asnyc_fn1()).unwrap_or_default(); 第二种: let mut rt = tokio::runtime::Builder::new() .threaded_scheduler() .enable_all(......
这是官方给的例子,稍微修改了一下。 notify_one() 不会阻塞。 wait() 会阻塞。 use std::collections::HashMap; use log::info; fn main() { use std::sync::{Arc, Mutex, Condvar}; use st...
结果: i32: 865 u32: 824 i64: 1102 u64: 1053 i128: 1385 u128: 1355 (i64, i64): 1465 (u64, u64): 1421 有符号和无符号速度基本无差别,谁放到后面执行谁的速度快一点,可能猜测跟 CPU ...
关于 Bowrrow check 的疑问,在 stackoverflow 里看到一个问题: https://stackoverflow.com/questions/46393890/mutable-borrow-in-loop 自己改了下代码,通过了,不过问题已经关闭了,记录...
硬件:mbp 2019 编译参数:cargo run --release 插入 i32 条数: 100,000,000 结论 HashMap<i32,i32> 1.3G, 13s BTreeMap<i32,i32> 1.98G, 10s HashSet<i32> 650M, 13s Vec<i32> 381M, 0.27...
use futures::{future, Future}; use futures::future::{FutureExt, Ready}; use std::result::Result; use std::error::Error; // 返回 impl Future 的三种写法 async fn f() -> Result<usi...
内存分布和 C 基本一致,不过还没有找到如何打印变量本身在栈中的位置的方法,也许它已经被完全编译器优化为偏移量了,没有深入研究。 &stu1 的值是结构体的首地址,第一个 String 占用了 0x...
撸了一个记录进度的包,用于记录多线程各个线程的进度。用法看单元测试部分。 use std::path::Path; use std::io::Write; #[derive(Debug)] pub struct Progress<'a> { file: &'a str, works...
这个方案可能是目前发现的最优美简洁的了: use crossbeam::thread; use std::collections::HashSet; fn main() { let mut a = HashSet::new(); a.insert("aaa"); let mut input = vec![a.cl...
Hyper 比较底层,不适合用于直接生产。适合基于它做封装。 Actix-web 文档比较友好,速度也不错。 Rocket 采用大量的宏,不适合 IDE 编写提示。 最后我们采用 Actix-web 作为我们的生产环境。...
在 rust-bitcoin 的项目意外找到了答案。 CLion 也能正确解析和调试,非常方便,它默认 example 下支持一个文件里包含一个 main.rs
Rc 和 Refcell 并不能违反 Rust 的借用原则,多个只读,一个可写借用。 use std::cell::RefCell; use std::rc::Rc; use core::borrow::BorrowMut; #[derive(Debug)] struct Tree { name: Str...
没有更多内容
加载失败,请刷新页面
文章删除后无法恢复,确定删除此文章吗?
动弹删除后,数据将无法恢复
评论删除后,数据将无法恢复