< 返回版块

[Rust每日新闻 - 2018-11-06]

ChaosBot 发表于

「官方」如何在2018年加速Rust编译器:NLL edition

#nll

本篇文章是对Niko之前博文的增补。其中按时间线罗列了针对NLL性能提升的各个PR。

这些PR主要是提升了编译器基于NLL做静态借用检查的性能。

Read More


「博文」利用Rust所有权语义来构造有约束的API

#api_design

该文作者在2017年的Rust Fest大会做了分享,直到昨天,他才把演讲内容更新成了文稿。

演讲视频

( 我在《Rust编程之道》一书的设计模式 - RAII模式 里也借鉴了他的这次演讲内容 )

Read More


「博文」Rust中的高阶函数

#fp #higher_order_function

该文使用一个二维数组的示例,探究了Rust中纯函数式编程,主要是高阶函数的应用。

Playground

Read More


「博文」Rust:一种新的思维方式

#pythoner

一个Pythoner写的文章,他在学习Rust的时候,所有权move语义和作用域的概念给他带来了新的思考。

Read More


「库」no-panic :通过一个属性宏让编译器检验函数不会发生panic

#proc_macro_attribute #proc_macro #no_panic

serde/syn 作者dtolnay的新库:no-panic。 提供了一个属性宏,通过编译器来保证函数不会发生panic。

比如:

extern crate no_panic;
use no_panic::no_panic;

#[no_panic]
fn demo(s: &str) -> &str {
    &s[1..]
}

fn main() {
    println!("{}", demo("input string"));
}

如果该demo函数发生panic(或编译器无法检验函数不能panic),则该函数会编译失败,并且错误信息中会携带包含该函数名称标识的链接器错误信息。

注意:通过看该库的源码发现:

  • Rust的proc_macro_attribute功能也移出了#![feature(custom_attribute)]特性,意味着,也要准备稳定了
  • 现在稳定的proc_macro功能,不能用作表达式,除非使用#![feature(proc_macro_hygiene)]特性。相关issues

no-panic


每日新闻订阅地址:

欢迎通过GitHub issues投稿。

评论区

还没有评论

共 0 评论, 共 0 页