Rust学习
寄意兰州
书山有路勤为径,学海无涯苦作舟。
展开
-
Rust基本语法整理(三)
通道的发送端有一个 send 方法用来获取需要放入通道的值。send 方法返回一个 Result<T, E> 类型,所以如果接收端已经被丢弃了,将没有发送值的目标,所以发送操作会返回错误。在这个例子中,出错的时候调用 unwrap 产生 panic recv,它是 receive 的缩写。这个方法会阻塞主线程执行直到从通道中接收一个值。一旦发送了一个值,recv 会在一个 Result<T, E> 中返回它。当通道发送端关闭,recv 会返回一个错误表明不会再有新的值到来了 try_原创 2020-07-25 16:07:57 · 874 阅读 · 0 评论 -
泰岳链使用rust-libp2p实现节点同步(二)
在阅读本篇之前, 请先查看 泰岳链使用rust-libp2p实现节点同步(一) 新区块缓存 同步的启动策略一般是当本地高度和对方节点上链高度相差一定高度常量,才会启动。 想象一下,握手时对方高度是100,当你同步完这些区块时,对方节点已经到120了,对方发送的区块121,收到后是无法上链的,而同步高度常量是50,只能等到150才能再次启动同步。 解决这个问题需要引入区块缓存。 新区块gossip通知 每产生一个区块,区块生产者都会通过gossip发送到订阅这个topic的节点,gossip为libp2p.原创 2020-06-19 20:02:40 · 558 阅读 · 0 评论 -
Rust基本语法整理(二)
整理来自Rust中文 . 通用集合类型,到构建命令行程序.已经看了第二遍,知识点还是容易忘记,整理记录一下,方便查阅. Rust中文 vector 是用泛型实现的,实例化时必须制定类型, 一个类型注解,如果在编写程序时不能确切无遗地知道运行时会储存进 vector 的所有类型 枚举技术就行不通了。相反,你可以使用 trait 对象 match v.get(2) { Some(thir...原创 2020-03-26 15:08:45 · 965 阅读 · 0 评论 -
Rust基本语法整理一
整理来自Rust中文前几章节,到包、Crates与模块.已经看了第二遍,知识点还是容易忘记,整理记录一下,方便查阅. Rust中文 x.0;元祖 let a: [i32; 5] = [1, 2, 3, 4, 5]; fn关键字 表达式和语句 表达式用于返回值,无冒号 因为 if 是一个表达式,我们可以在 let 语句的右侧使用它 栈中的所有数据都必须占用已知且固定的大小已实现COPY 字符串字...原创 2020-03-22 15:55:41 · 594 阅读 · 0 评论