随着2021年10月21日Rust 1.56.0发布也一同带来了Edition 2021.
发布的新特性有:
Disjoint Capture 在闭包中如果使用了结构体的某个属性,使用版本2021只会尝试捕获使用到的属性而不是整个结构体,示例代码:
//-- 可以这样写了,而不用像先前版本还需要先let y = &a.y
let c = || print!("{}", aStruct.y);
在使用宏(macros)时支持or patterns了,不需要这样写了:
Some(1)|Some(2)
可以这样写了:
Some(1|2)
使用into_iter遍历数组时是使用的value而不是引用,为了兼容先前版本的代码
array.into_iter()
转为版本2021时会转换为
(&array).into_iter()
还有很多特性更新可以查看官方文档