Rust 编写 derive 宏

宏可以帮助我们减少重复代码的编写,在 Rust 中有两种宏定义,

  • 声明宏
  • 过程宏

其中,声明宏只是简单的 token 替换,我们无法知道代码结构中的其他信息,过程宏可以获取更加详细的数据,比如我们可以获取结构体中字段的名称,类型等等。

阅读更多

Rust 参数设置默认值

Option 模式?

在调用函数的时候,可能参数比较多,但是我们只需要修改其中的几个特定参数就可以满足我们的需求,而其他的参数我们希望保持不变,但是 Rust 和 Go 一样,函数调用中不支持默认参数,所以我们必须另寻他法,那么第一感觉我们是不是可以采用 Go 中的 选项模式呢?

虽然 Rust 函数中并不支持变参数传递,但是我们可以通过 来间接达到相同的功能,代码如下

阅读更多

cargo 中的语义版本控制系统

Cargo 和其他很多工具一样,遵循语义版本控制系统,程序库以

$$\text{major.minor.patch}$$

格式指定,其中

  • major:项目进行重大更新,且包含不向后兼容的功能
  • minor:仅在以向后兼容的方式添加新功能
  • patch:仅在以向后兼容的方式修复错误,并且没有添加任何新的功能
阅读更多