Rust团队很高兴地宣布Rust 1.46.0的新版本。Rust是一种编程语言,它使任何人都可以创建可靠而高效的软件。
如果您具有通过rustup安装的Rust的早期版本,则获取Rust 1.46.0的操作很简单:
rustup update stable
如果你不已经拥有了它rustup
,你可以安装它从我们的网站上相应的页面,并检查了详细的1.46.0版本说明在GitHub上。
稳定版1.46.0中包含什么
此发行版相当小,const fn
对标准库中的两个新API进行了改进,稳定化,并为库作者提供了一个选项。有关本公告未涵盖的其他更改,请参见详细的发行说明。
#[track_caller]
早在三月,当Rust 1.42发布时, , unwrap
类似的功能就引起了恐慌。然后我们提到实现还不稳定。在Rust 1.46中,我们稳定了它。
这个属性的名称#[track_caller]
是在2017年7月的RFC 2091中提出的!如果您正在编写这样的unwrap
可能导致紧急情况的函数,则可以将此注释添加到函数中,并且紧急情况格式化程序将默认使用它来显示错误消息。例如unwrap
:
pub fn unwrap(self) -> T {
match self {
Some(val) => val,
None => panic!(" `Option::unwrap()` `None`"),
}
}
现在看起来像这样:
#[track_caller]
pub fn unwrap(self) -> T {
match self {
Some(val) => val,
None => panic!(" `Option::unwrap()` `None`"),
}
}
就这样!
如果实现了恐慌陷阱自己,你可以使用呼叫者的方法在std::panic::Location
获取这些信息。
改进之处 const fn
现在,您还可以使用const fn
一些基本语言,例如:
if
,if let
和match
while
,while let
和loop
- 运营商
&&
和||
并转换为slice:
const fn foo() {
let x = [1, 2, 3, 4, 5];
//
let y: &[_] = &x;
}
, , const fn
, ! , , const-sha1
SHA1 . 40- Microsoft WinRT Rust.
const fn
, std::mem::forget
const fn
. API:
1.46.0
Rust - . , .
opencollective: https://opencollective.com/rust-lang-ru.