蜜月期之后的 Rust
使用每一种语言就如同每段感情一样, 都有蜜月期. 当蜜月期过后, Rust 是否还是你的最爱呢?
作者两年前就写过 <<爱上Rust>> 的相关博客. 两年过去了, 如同作者说:
我仍然坚持我之前所说的一切.
他们仍然结着婚,而且很幸福
.
除此之外,作者还列举了很多大大小小的细节,来说明为什么他仍然最爱 Rust:
no_std
可以选择性关闭标准库.{:#x?}
更加 pretty 的打印变量.数字字面量
例如0b0000_1011_1000_0000
DWARF
的支持 让 debug 没那么痛苦.gimli 和 goblin
这是两个 crates, gimli 是用来消费DWARF
数据,从而可以制作调试工具. 而 globlin 可以处理 ELF.data-bearing enums
用过 Rust 的 enum 都说好.paste
crate paste 可以像 C 的宏那样,所以粘贴多个标识符组成一个标识符.unsafe
虽然 Rust 最大特性之一是 safe,但是 unsafe 的存在也给了我们更多选择.多平台支持
anyhow! + RUST_BACKTRACE
错误处理体验非常棒.asm!
提供了非常方便的宏语法,让你写汇编不再那么痛苦.string的连续性
--pretty=expanded 和 cargo expand
展开宏
Rust 中的可选参数
在 Rust 中, 可选参数并不在语法层面上被支持.
这篇文章列出了下面多种方式来支持可选参数, 并且附上了优缺点:
Option<T>
Into<Option<T>>
- 自定义的 struct.
- 使用
builder
模式. Endpoint-oriented 接口
Hybrid derive pattern
Grouping up endpoints
Macros
Gameboy 模拟器
这是一个 Rust + WASM
编写的非常酷的 Gameboy 模拟器
, 运行在浏览器中.
riscv-rust: Rust + WASM 编写的 RISC-V 的处理器模拟器
riscv-rust 是一个 RISC-V
处理器和周边设备的模拟器. 使用 Rust 编写并且编译成 WebAssembly.
你可以在你的浏览器中运行 Linux 或者 xv6.
puffin: 非常棒的 Rust profile 工具
Puffin 是一款 rust 性能剖析器, 用法非常简单, 如下:
fn my_function() {
puffin::profile_function!():
...
if ... {
puffin::profile_scope_data!("load_image", image_name):
...
}
}
如果想使用 UI,还可以使用插件 crate puffin-imgui
来展示火焰图等,他的样子如下:
--
From 日报小组 BobQin,FBI小白
社区学习交流平台订阅:
1
共 0 条评论, 1 页
评论区
写评论还没有评论