内容简介:Rust 1.31 是第一个实现了 Rust 2018 独有新功能并且不保证与现有代码库兼容的版本。Rust 2018 相关工作正在进行中,而 Rust 1.31 只是整个三年开发周期的开始,这个开发周期将对这门语言进行重要的扩展。InfoQ 之前已有报道,Rust 2018 的目标是打包自上一个主要版本(Rust 2015)以来的所有已经出现的语言变更。此外,Rust 2018 将包含一些可能会破坏现有源代码的变更。比如引入了新的关键字,例如 try、async、await 等,它们可能与变量或函数名称
Rust 1.31 是第一个实现了 Rust 2018 独有新功能并且不保证与现有代码库兼容的版本。Rust 2018 相关工作正在进行中,而 Rust 1.31 只是整个三年开发周期的开始,这个开发周期将对这门语言进行重要的扩展。
InfoQ 之前已有报道,Rust 2018 的目标是打包自上一个主要版本(Rust 2015)以来的所有已经出现的语言变更。此外,Rust 2018 将包含一些可能会破坏现有源代码的变更。比如引入了新的关键字,例如 try、async、await 等,它们可能与变量或函数名称产生冲突。因此,能够选择要使用的语言版本对于编译现有代码库来说非常关键。为了实现这种方法,Rust 团队已经在 Rust 1.31 中一次性地包含了所有重大变化,尽管有些尚未完全实现。例如,他们保留了新关键字,但还不起作用,因此试图使用它们来命名变量或函数的开发人员会收到错误。需要指出的是,Rust 2015 和 2018 软件包可以在同一个程序中共存,这意味着 Rust 2018 程序可以使用 Rust 2015 软件包,反之亦然。
Rust 1.31 引入了很多主要语言功能,包括:
- 非词法生命周期,让 Rust 可以借用检查器查看变量的实际生命周期而不必将其绑定到词法作用域。
复制代码
fnmain() { letmutx =5; lety = &x; // In Rust 2018, y lifetime ends here, letz = &mutx; // so this is ok. }
- 模块路径清晰度,旨在简化使用 Rust 模块系统的方式,包括 extern crate 用法的改变、简化模块路径,等等。
- const fn,可以被用于任意常量上下文中,并在编译时进行求值。常量函数可以包括算术或布尔运算、调用其他常量函数等,但比正常函数具有更多的限制。Rust 2015 中也提供了常量函数。
复制代码
constfnfoo(x:i32) ->i32{ x +1 } constSIX:i32= foo(5);
不过,Rust 2018 的推出并不意味着 Rust 2015 已经结束。事实上,Rust 团队计划将所有不会破坏兼容性的变更向后移植到 Rust 2015,尽管这将在稍后的时间点发生。
你可以通过运行 rustup update stable 来安装 Rust 1.31。要试用 Rust 2018 功能,你需要在 Cargo.toml 文件的 [package] 中指定 edition = “2018”。如果没有提供版本,Rust 编译器将默认使用 Rust 2015,以最大化源代码兼容性。
在一份相关的说明中,Rust 团队还发布了Rust 2018 调查结果,旨在衡量用户对 Rust 的满意度,并说明了语言和 工具 的常见缺点。
查看英文原文: Rust 1.31 Brings the First Rust 2018 Features, Non-lexical Lifetimes and Module Improvements
以上所述就是小编给大家介绍的《Rust 1.31 正式发布,首次引入 Rust 2018 新功能》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- YouTrack 2018.1 正式发布:引入大量新功能
- Visual Studio 引入新功能:根据上下文智能完成代码
- Nginx 主线版 1.15.0 发布,错误修复和引入新功能
- 解析器生成器 Bison 3.1 发布,引入新功能和错误修复
- Windows 10 API曝光:微软或为Surface Pen引入新功能和充电底座
- ECMAScript 2015 新功能關係
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。