Rust笔记

1
2
3
4
5
export RUSTUP_DIST_SERVER="https://rsproxy.cn"
export RUSTUP_UPDATE_ROOT="https://rsproxy.cn/rustup"
# curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
curl --proto '=https' --tlsv1.2 -sSf https://rsproxy.cn/rustup-init.sh | sh
rustup component add rust-analyzer
  • break 可以单独使用,也可以带一个返回值,有些类似 return
  • loop 是一个表达式,因此可以返回一个值

字节提供的rust镜像:https://rsproxy.cn/#getStarted

这种定义在 impl 中且没有 self 的函数被称之为关联函数: 因为它没有 self,不能用 f.read() 的形式调用,因此它是一个函数而不是方法,它又在 impl 中,与结构体紧密关联,因此称为关联函数。

但是这种写法限制了 Screen 实例的 Vec<T> 中的每个元素必须是 Button 类型或者全是 SelectBox 类型。如果只需要同质(相同类型)集合,更倾向于采用泛型+特征约束这种写法,因其实现更清晰,且性能更好(特征对象,需要在运行时从 vtable 动态查找需要调用的方法)。

zsh安装

#前言

为了环境统一,把自己的 linux 和 mac 的电脑都装上统一的 zsh。

launchd体验

因为工作忙经常忘记事情,但是用日历记录这些小事情感觉有点“重”,用 iMessage 刚刚好。
记录遇到的问题,也算是折腾了好久。

Raft学习笔记

关于Raft的学习记录。如有疑问欢迎指正,也欢迎讨论。

paxos的思想理解起来很困难,只是简单地理解了一下,连着看了几天都不能真正理解,跳过先看《In Search of an Understandable Consensus Algorithm》。

个人感觉学习这两个算法就不要想着 10 分钟学会的那种文章了,越长越好,毕竟论文 18 页?

#摘要

Raft是一个共识算法,为了解决paxos难以理解的问题,解决方式是将一些共识算法中的一些概念分离,并通过safety来约束这些之间的关系。具体有四个方面,leader electionlog replicationsafetymembership changes