阿萍的博客

“ 编程语言”

Move 语言

Move 还有其它变种,如 Aptos Move。本文中介绍的某些 Move 概念(即对象和相关功能)只适用于 Move 的 Sui 变体,而不适用于其他变体。1 Move 编程模型所有的智能合...

Rust 中 [u8], Vec<u8>, H256 转换

[u8] -> H256let input: [u8]; let tx_hash = H256::from_slice(&input[0..32]);[u8; n] -> [...

Rust 总结

1 Rust 优缺点Rust 作为一门系统语言,与 C++ 相比优点:可读的代码风格。内存安全,在编译期就阻止了内存错误,比如内存泄漏、分段错误、二次释放等。比 C++ 性能好,接近于 C 的性...

在同步函数中调用异步函数

可以用 async 关键字将异步函数进行包裹:#[test] fn async_webm_test() { let pieces = vec![ ...

异步 filter

filter 参数一般是个同步闭包,如果需要传入异步函数,可以使用 try_filter,条件使用 future::ready() let mut chunk_stream: BoxedCh...

捕捉 ctlr+c 信号

从 tokio::signal::ctrl_c() 收到消息,便说明收到了 ctrl+c 信号。 tokio::select! { // pass the multistre...

在多线程之间使用 option 全局变量

全局变量初始化:lazy_static::lazy_static! { static ref VIDEO: Arc<Mutex<Option<Video>>...

Result 的打开方式

1 没有值时发生 panic1.1 expect正确,返回值;否则,中断程序,打印 msg 错误信息。源码pub fn expect(self, msg: &str) -> T {...

Option 的打开方式

1 没有值时发生 panic1.1 expect有值,返回值;否则,中断程序,打印 msg 错误信息。源码pub fn expect(self, msg: &str) -> T {...

for 循环并行

注意:在 for 循环内部,仍然要注意写互斥,比如,对 map 的写操作就不是线程安全的,除非 map 中已经预先填好了 key,这时候更新 value 是线程安全的,因为不同的线程中获得的 k...