【Rust日报】2020-07-26 - Easy Rust 让Rust文档更容易理解

2020-07-28 11:47:18 浏览数 (1)

Rust Stable 1.45 中的 "神奇" Bug 解读

今天Rust 官方仓库里报告了一个神奇的Bug,该 Bug 似乎动摇了 Rust 的世界法则,该 Bug 的表现如下:

代码语言:javascript复制
struct Foo {
    x: i32,
}

fn main() {
    let mut foo = Foo { x: 42 };
    let x = &mut foo.x;
    *x = 13;
    let y = foo;
    println!("{}", y.x); // -> 42; expected result: 13
}

正常情况下,最后的 y.x 应该输出 “13”,但是现在还是 “42”。这个结果意味着,代码第7行的可变引用并没有起到作用。

是不是很神奇?这个 Bug 让人感觉 Rust 世界的基本法则都崩塌了。

https://mp.weixin.qq.com/s/Qr3x-NbhOTlUtYyzlPQ4iQ

servo-unity:Unity的浏览器插件

servo是一个使用Rust开发的浏览器,servo-unity这个插件可以在unity构建的在AR/VR世界中展示一个浏览器窗口,在虚拟世界中拥有类似现实中的浏览器体验。本文介绍了这个插件能够实现的功能,以及它的工作原理、架构设计和一些挑战。

https://github.com/MozillaReality/servo-unity

https://blog.mozvr.com/a-browser-plugin-for-unity/

http://jamesmcm.github.io/blog/2020/07/25/intro-dod/#en

Easy Rust 让Rust文档更容易理解

Rust的文档已经很全面了,但是很多非英语母语的人理解起来可能比较困难,easy rust用比较容易理解的表述方式组织了Rust文档。

能降低文档理解难度,确实能让一部分人受益,如果你想通过这个文档学习,最好以官方文档为主,将这个文档作为参考,否则可能会走上偏路。

https://github.com/Dhghomon/easy_rust

Rust项目测试小技巧

在Rust项目中,如果你要对私有方法做测试,你该怎么办呢?临时将方法改为public?别再这样做了。你可以不创建tests文件夹,而是添加test模块,然后将方法改为pub(crate)。

代码语言:javascript复制
#[cfg(test)]
mod tests;

From 日报小组 格朗, Lanpeng

社区学习交流平台订阅:

  • Rustcc 论坛: 支持 rss
  • 微信公众号:Rust语言中文社区

0 人点赞